Želite li poboljšati svoje Python vještine? Tada možete pokušati izvršiti neke zadatke na računalu pomoću Pythona. 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 odvlačenja pažnje s vašeg koda. Ako ste novi u Pythonu, to je vještina koju ćete možda trebati pokupiti na ovaj ili onaj način. Dakle, saznajmo kako preko ovog posta kopirati datoteke s Pythonom.
Zahtjevi za kopiranje datoteka pomoću Pythona
Postoji mnogo načina za kopiranje i lijepljenje datoteka pomoću Pythona. Dakle, zahtjev za to varira i ovisi o metodi koju ste odlučili koristiti.
Iako vam možda neće trebati dodatni moduli za kopiranje datoteka s Pythonom, i dalje možete koristiti ugrađene knjižnice ako želite.
Na primjer, ako želite koristiti os metodu, morate ga 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 razne metode za kopiranje datoteka pomoću Pythona.
Kako kopirati datoteke pomoću Pythonove ugrađene knjižnice Shutil
The šutil modul je ugrađena i moćna Python knjižnica za brzo čitanje i pisanje datoteka u Pythonu.
Da biste je koristili, trebate navesti samo puni put izvorne i odredišne datoteke.
U suštini, šutil uzima ovaj format:
shutil.copy ([put izvornog direktorija], [put odredišnog direktorija], follow_symlinks = True)
Na primjer, kôd u nastavku koristi shutil.copy () za kopiranje datoteke s imenom copy.txt iz mape zvane moja_mapa u drugu koja se zove odredište. Zatim odredišnu datoteku preimenuje u newFile.txt:
uvoziti shutil
sourceFile = "C: /Korisnici/neki_direktoriji/my_folder/copy.txt"
destinationFile = "C: /Korisnici/neki_direktoriji/destinacija/newFile.txt"
shutil.copy (sourceFile, destinationFile, follow_symlinks = True)
Imajte na umu da svoj kod možete napisati na bilo koji uređivač 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: Naredbeni redak (CMD) Naredbe koje morate znati
The shutil.kopija metoda ne kopira metapodatke izvorne datoteke. U osnovi, vaš stroj odredišnu datoteku u cijelosti vidi kao novu i daje joj nove metapodatke.
Međutim, da biste kopirali metapodatke zajedno s izvornom datotekom, upotrijebite shutil.copy2 metoda:
uvoziti 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 ostale atribute.
The slijedite_simlinkove argument je simbolična deklaracija veze koja omogućuje šutil slijediti apsolutni put. Stoga ga morate uključiti ako su izvorne i odredišne datoteke u različitim direktorijima.
Ali ako su obje datoteke u vašem trenutnom radnom direktoriju, ne trebate uključiti slijedite_simlinkove. Ako to učinite, Python postavlja sintaksnu iznimku.
Dakle, ako lijepite izvornu datoteku u svoj trenutni radni direktorij, vaš bi kôd trebao izgledati ovako:
uvoziti shutil
shutil.copy2 (sourceFile, destinationFile)
Osim što koristite gore navedene metode shutil, možete i koristiti shutil.copyfile ili shutil.copyfileobj.
Koristeći shutil.copyfileobj je malo drugačija jer zahtijeva ugrađenu otvoren funkcija. Zatim trebate čitati i pisati binarne datoteke tako što ćete uključiti "rb" i "wb" argumenti.
Da vidimo kako shutil.copyfileobj metoda radi koristeći iste direktorije koje smo koristili ranije:
uvoziti shutil
sourceFilePath = otvoren ("C: /Korisnici/neki_direktoriji/my_folder/copy.txt", "rb")
destinationFilePath = otvoren ("C: /Korisnici/neki_direktoriji/destinacija/newFile.txt", "wb")
shutil.copyfileobj (sourceFilePath, destinationFilePath)
Imajte na umu da shutil.copyfileobj () ne zahtijeva slijedite_simlinkove argument.
Međutim, shutil.copyfile () radi prilično na isti način .kopirati i .kopija2 čini. Oni se samo neznatno razlikuju po svojim unutarnjim funkcijama.
Da biste koristili shutil.copyfile () metoda:
uvoziti shutil
sourceFilePath = "C: /Korisnici/neki_direktoriji/my_folder/copy.txt"
destinationFilePath = "C: /Korisnici/neki_direktoriji/destinacija/newFile.txt"
shutil.copyfile (sourceFilePath, destinationFilePath)
Kako kopirati datoteke pomoću os modula
The os modul koristi dvije ugrađene metode za kopiranje datoteka; os.system () i os.popen () metode.
The os.system () metoda omogućuje imitiranje okruženja naredbenog retka.
Međutim, nedostatak metoda OS je u tome što kopiraju datoteke samo u vašem trenutnom radnom direktoriju.
Da biste koristili os.system () metoda u sustavu Windows:
uvozni os
os.system ('kopiraj izvor.txt odredište.txt)
Također možete koristiti ugrađeni xcopy Naredba Windows terminala:
uvozni os
os.system ('xcopy source.txt destination.txt)
Da biste koristili os.sustav metoda na Linuxu, zamijeni kopirati s k.č.:
uvozni os
os.system ('cp source.txt odredište.txt)
Kako kopirati datoteke pomoću metode os.popen
Da biste koristili ovu metodu, zamijenite os.system () s os.popen ().
U sustavu Windows koristite:
uvozni os
os.popen ('kopiraj izvor.txt odredište.txt)
Kao što smo i učinili sa os.system (), zamijeniti kopirati s k.č. za korištenje ove metode na Linuxu:
uvozni os
os.popen ('cp izvor.txt odredište.txt)
Kako kopirati datoteke pomoću Pythonovog podprocesnog modula
Pored gore navedenih metoda, možete koristiti i potproces () biblioteka za kopiranje datoteka u Pythonu:
uvoziti potproces kao sp
sp.call ("kopirajte sourceFile destinationFile", ljuska = True)
Međutim, na Linuxu koristite:
uvoziti potproces kao sp
sp.call ("cp sourceFile destinationFile", ljuska = True)
The potproces knjižnica također koristi subprocess.check_out () metoda. Djeluje na isti način potproces.call () radi:
uvoziti potproces kao sp
sp.check_out ("kopirajte sourceFile destinationFile", ljuska = True)
Na Linuxu zamijenite kopirati s k.č.:
uvoziti potproces kao sp
sp.check_out ("cp sourceFile destinationFIle", ljuska = True)
Međutim, kao i metode os, metode potprocesa rade samo s datotekama u vašem trenutnom radnom direktoriju.
Bilješka: Također možete kopirati datoteke u mapu ako se nalazi u istom radnom direktoriju kao i izvorna datoteka. Sve što trebate je zamijeniti naziv odredišne datoteke imenom odredišne mape. Međutim, osigurajte da su odredišna mapa i izvorna datoteka u vašem trenutnom radnom direktoriju.
Kako kopirati datoteke u Pythonu bez upotrebe knjižnica
Također možete kopirati datoteke u Pythonu, bez ovisnosti o bilo kojoj knjižnici. Kao i metoda shutil, trebaju vam samo pune staze direktorija izvora i odredišta.
Evo kako to postići:
sourcePath = "C: /Users/source_directories/my_folder/copy.txt"
destinationPath = "C: /Korisnici/neki_direktoriji/destinacijski_direktoriji/newFile.txt"
s otvorenim (sourcePath, "rb") kako se čita:
s otvorenim (odredište, "wb") kao moja datoteka:
myfile.write (read.read ())
Do kôd učiniti ponovnim, možete ga preinačiti u funkciju:
def copyFile (izvor = Nijedan, odredište = Nema):
ako nije (izvor i odredište) == Nijedno:
s otvorenim (izvor, "rb") kako se čita:
s otvorenim (odredište, "wb") kao moja datoteka:
myfile.write (read.read ())
drugo:
ispis ("Molimo unesite izvornu i odredišnu stazu")
copyFile (sourcePath, destinationPath)
To je to. Upravo ste napravili fotokopirni uređaj za ponovnu upotrebu s Pythonom bez upotrebe bilo koje knjižnice.
Nastavite automatizirati zadatke s Pythonom
Osim što vam pomaže da ostanete usredotočeni na svoj kod tijekom izrade projekata, kopiranje datoteka s Pythonom omogućuje vam bolje razumijevanje upravljanja datotekama s Pythonom. Međutim, poigravanje sa Python zadacima način je da poboljšate svoje Python vještine, pogotovo ako ste početnik.
Na primjer, možete promijeniti datum i vrijeme na računalu pomoću os modula. Ako želite, možete čak i pisati prilagođene bash naredbe s Pythonom.
Želite li izraditi vlastite programe Python naredbenog retka, ali vam je to previše teško? Upotrijebite Click, koristan Python alat za usmjeravanje koda.
- Programiranje
- Piton
Idowu je zaljubljen u sve pametne tehnologije i produktivnost. U slobodno vrijeme igra se s kodiranjem i prebacuje se na šahovsku ploču kad mu je dosadno, ali također voli kad-tad odvojiti se od rutine. Njegova strast da ljudima pokaže put oko moderne tehnologije motivira ga da piše više.
Pretplatite se na naše obavijesti
Pridružite se našem biltenu za tehničke savjete, recenzije, besplatne e-knjige i ekskluzivne ponude!
Još jedan korak…!
Potvrdite svoju e-adresu u e-pošti koju smo vam upravo poslali.