Učenje Pythona? Evo kako kopirati datoteku

Učenje Pythona? Evo kako kopirati datoteku

Želite li poboljšati svoju vještinu Pythona? Zatim možete pokušati izvesti neke zadatke na svom računalu s Pythonom. Kopiranje i lijepljenje datoteka iz jednog direktorija u drugi pomoću Pythona zabavan je način za to.





Osim što je zabavno, omogućuje vam brzo čitanje i pisanje datoteka bez ometanja koda. Ako ste tek počeli s Pythonom, to je vještina koju ćete ipak morati usvojiti na ovaj ili onaj način. Dakle, saznajmo kako kopirati datoteke s Pythonom kroz ovaj post.





Zahtjevi za kopiranje datoteka s Pythonom

Postoji mnogo načina kopiranja i lijepljenja datoteka s Pythonom. Dakle, zahtjevi za to variraju i ovise o metodi koju odlučite koristiti.





Iako vam možda neće biti potrebni dodatni moduli za kopiranje datoteka s Pythonom, ipak možete koristiti ugrađene knjižnice ako želite.

Na primjer, ako želite koristiti vas metodu, morate je uvesti u svoj kôd. Međutim, jedan od popularnih načina kopiranja datoteka s Pythonom je korištenje šutil knjižnica.



Pogledajmo kako možemo koristiti ove različite metode za kopiranje datoteka s Pythonom.

Kako kopirati datoteke pomoću Pythonove ugrađene biblioteke Shutil

The šutil module je ugrađena i moćna knjižnica Python za brzo čitanje i pisanje datoteka u Pythonu.





Da biste ga koristili, trebate unijeti samo punu putanju izvornih i odredišnih datoteka.

kako pronaći povijest nekretnine na internetu

U suštini, šutil uzima ovaj format:





shutil.copy([source directory path], [destination directory path], follow_symlinks=True)

Na primjer, donji kôd koristi shutil.copy () za kopiranje datoteke s imenom copy.txt iz mape koja se zove moja_mapa u drugu po imenu odredište . Zatim odredišnu datoteku preimenuje u newFile.txt :

import shutil
sourceFile = 'C:/Users/some_directories/my_folder/copy.txt'
destinationFile = 'C:/Users/some_directories/destination/newFile.txt'
shutil.copy(sourceFile, destinationFile, follow_symlinks=True)

Imajte na umu da svoj kôd možete napisati u bilo kojem uređivaču koda po vašem izboru. Zatim ga možete pokrenuti pomoću naredbenog retka.

Međutim, možete koristiti i zadano Python integrirano razvojno okruženje (IDLE) ako niste upoznati s pokretanjem Pythona putem naredbenog retka.

Povezano: Naredbe naredbenog retka (CMD) koje morate znati

The shutil.kopija metoda ne kopira metapodatke izvorne datoteke. U biti, vaš stroj vidi odredišnu datoteku kao potpuno novu i daje joj nove metapodatke.

Međutim, za kopiranje metapodataka zajedno s izvornom datotekom upotrijebite shutil.copy2 metoda:

import shutil
shutil.copy2(sourceFile, destinationFile, follow_symlinks=True)

Gornja metoda čuva izvorne metapodatke stare datoteke u odredišnoj datoteci. Na primjer, odredišna datoteka zadržava datum kada ste stvorili izvornu datoteku, njezinu veličinu i druge atribute.

The follow_symlinks argument je simbolična deklaracija veze koja dopušta šutil slijediti apsolutni put. Stoga ga morate uključiti ako su izvorne i odredišne ​​datoteke u različitim imenicima.

No ako su obje datoteke u vašem trenutnom radnom direktoriju, ne morate uključiti follow_symlinks . Ako to učinite, Python pokreće iznimku od sintakse.

najbolji način dijeljenja fotografija na internetu

Dakle, ako lijepite izvornu datoteku u trenutni radni direktorij, vaš kôd trebao bi izgledati ovako:

import shutil
shutil.copy2(sourceFile, destinationFile)

Osim korištenja gore navedenih metoda shutila, možete koristiti i shutil.copyfile ili shutil.copyfileobj .

Korištenje shutil.copyfileobj je malo drugačiji jer zahtijeva ugrađeno otvorena funkcija. Zatim morate čitati i pisati binarne datoteke dodavanjem 'rb' i 'wb' argumenti.

Da vidimo kako je shutil.copyfileobj metoda radi pomoću istih direktorija koje smo prethodno koristili:

import shutil
sourceFilePath = open('C:/Users/some_directories/my_folder/copy.txt', 'rb')
destinationFilePath = open('C:/Users/some_directories/destination/newFile.txt', 'wb')
shutil.copyfileobj(sourceFilePath, destinationFilePath)

Imajte na umu da shutil.copyfileobj () ne zahtijeva follow_symlinks argument.

Međutim, shutil.copyfile () radi na približno isti način .kopirati i .kopija2 čini. Samo se neznatno razlikuju po svojim unutarnjim funkcijama.

Za korištenje shutil.copyfile () metoda:

import shutil
sourceFilePath = 'C:/Users/some_directories/my_folder/copy.txt'
destinationFilePath = 'C:/Users/some_directories/destination/newFile.txt'
shutil.copyfile(sourceFilePath, destinationFilePath)

Kako kopirati datoteke pomoću os modula

The vas modul koristi dvije ugrađene metode za kopiranje datoteka; os.system () i os.popen () metodama.

The os.system () metoda omogućuje imitiranje okruženja naredbenog retka.

Međutim, nedostatak os metoda je što kopiraju samo datoteke u vašem trenutnom radnom direktoriju.

Za korištenje os.system () metoda u sustavu Windows:

import os
os.system('copy source.txt destination.txt)

Također možete koristiti ugrađeno xcopy Naredba Windows terminala:

import os
os.system('xcopy source.txt destination.txt)

Za korištenje os.sustav metodu na Linuxu, zamijenite kopirati s k.č :

import os
os.system('cp source.txt destination.txt)

Kako kopirati datoteke pomoću metode os.popen

Da biste koristili ovu metodu, zamijenite je os.system () s os.popen () .

U sustavu Windows koristite:

import os
os.popen('copy source.txt destination.txt)

Kao što smo učinili s os.system () , zamijeniti kopirati s k.č za korištenje ove metode na Linuxu:

import os
os.popen('cp source.txt destination.txt)

Kako kopirati datoteke pomoću Pythonovog podprocesnog modula

Osim gore navedenih metoda, možete koristiti i podproces () biblioteka za kopiranje datoteka u Pythonu:

import subprocess as sp
sp.call('copy sourceFile destinationFile', shell=True)

Međutim, na Linuxu koristite:

import subprocess as sp
sp.call('cp sourceFile destinationFile', shell=True)

The potproces biblioteka također koristi podproces.check_out () metoda. Radi na isti način podproces.call () radi:

import subprocess as sp
sp.check_out('copy sourceFile destinationFile', shell=True)

Na Linuxu zamijenite kopirati s k.č :

import subprocess as sp
sp.check_out('cp sourceFile destinationFIle', shell=True)

Međutim, poput metoda os, metode potprocesa rade samo s datotekama u vašem trenutnom radnom direktoriju.

Bilješka: Datoteke možete kopirati i u mapu ako se nalazi u istom radnom direktoriju kao i izvorna datoteka. Sve što trebate učiniti je zamijeniti naziv odredišne ​​datoteke imenom odredišne ​​mape. Međutim, provjerite jesu li odredišna mapa i izvorna datoteka u vašem trenutnom radnom direktoriju.

Kako kopirati datoteke u Pythonu bez korištenja knjižnica

Također možete kopirati datoteke u Pythonu bez ovisno o knjižnici. Poput metode shutil, potrebni su vam samo puni putovi izvornog i odredišnog direktorija.

koji je najbolji operativni sustav

Evo kako to postići:

sourcePath = 'C:/Users/source_directories/my_folder/copy.txt'
destinationPath = 'C:/Users/some_directories/destination_directories/newFile.txt'
with open(sourcePath, 'rb') as read:
with open(destinationPath, 'wb') as myfile:
myfile.write(read.read())

Kako bi se kôd mogao ponovno koristiti, možete ga promijeniti u funkciju:

def copyFile(source=None, destination=None):
if not (source and destination)==None:
with open(source, 'rb') as read:
with open(destination, 'wb') as myfile:
myfile.write(read.read())
else:
print('Please enter the source and destination paths')
copyFile(sourcePath, destinationPath)

To je to. Upravo ste napravili fotokopirni stroj za višekratnu uporabu s Pythonom bez upotrebe bilo koje knjižnice.

Nastavite automatizirati zadatke s Pythonom

Osim što vam pomaže da ostanete usredotočeni na kôd tijekom izgradnje projekata, kopiranje datoteka s Pythonom omogućuje vam bolje razumijevanje upravljanja datotekama s Pythonom. Međutim, igranje Python zadacima način je da poboljšate svoje vještine Pythona, osobito ako ste početnik.

Na primjer, možete promijeniti datum i vrijeme na računalu pomoću os modula. Možete čak i napisati prilagođene bash naredbe s Pythonom ako želite.

Udio Udio Cvrkut E -pošta Kako stvoriti vlastite programe naredbenog retka u Pythonu klikom

Želite li napraviti vlastite programe za naredbeni redak Python, ali vam je to previše teško? Upotrijebite Click, koristan Pythonov alat za pojednostavljivanje koda.

Pročitajte Dalje
Povezane teme
  • Programiranje
  • Piton
O autoru Idisou Omisola(94 objavljena članka)

Idowu je strastven u bilo čemu pametnom tehnologiji i produktivnosti. U slobodno vrijeme igra se kodiranjem i prebacuje na šahovsku ploču kad mu je dosadno, ali također voli povremeno odustati od rutine. Njegova strast prema pokazivanju ljudi suvremene tehnologije motivira ga da piše više.

Više od Idowua Omisole

Pretplatite se na naše obavijesti

Pridružite se našem biltenu za tehničke savjete, recenzije, besplatne e -knjige i ekskluzivne ponude!

Kliknite ovdje za pretplatu