Ali želite izboljšati svoje znanje Pythona? Nato lahko poskusite izvesti nekatera opravila v računalniku s Pythonom. Kopiranje in lepljenje datotek iz enega imenika v drugega s pomočjo Pythona je zabaven način za to.

Poleg tega, da je zabaven, vam omogoča hitro branje in pisanje datotek, ne da bi vas motila koda. Če ste Python šele nov, je to veščina, ki jo boste morda še vedno potrebovali. Torej, poglejmo, kako preko te objave kopirati datoteke s Pythonom.

Zahteve za kopiranje datotek s Pythonom

Obstaja veliko načinov za kopiranje in lepljenje datotek s Pythonom. Zahteva po tem se razlikuje in je odvisna od metode, ki se jo odločite uporabiti.

Čeprav za kopiranje datotek s Pythonom morda ne boste potrebovali dodatnih modulov, lahko še vedno uporabljate vgrajene knjižnice, če želite.

Na primer, če želite uporabiti os jo morate uvoziti v kodo. Vendar pa je eden izmed priljubljenih načinov kopiranja datotek s Pythonom uporaba shutil knjižnica.

Poglejmo, kako lahko uporabimo te različne metode za kopiranje datotek s Pythonom.

instagram viewer

Kako kopirati datoteke z uporabo Pythonove vgrajene knjižnice Shutil

The shutil module je vgrajena in zmogljiva knjižnica Python za hitro branje in pisanje datotek v Pythonu.

Če jo želite uporabiti, morate navesti celotno pot izvorne in ciljne datoteke.

V bistvu, shutil zavzame to obliko:

shutil.copy ([pot do izvornega imenika], [pot do ciljnega imenika], follow_symlinks = True)

Na primer, spodnja koda uporablja shutil.copy () za kopiranje datoteke z imenom copy.txt iz mape z imenom moja_mapa v drugega z imenom destinacijo. Nato ciljno datoteko preimenuje v newFile.txt:

uvoz 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)

Upoštevajte, da lahko kodo napišete v kateri koli urejevalnik kod po vaši izbiri. Nato ga lahko zaženete z ukazno vrstico.

Lahko pa uporabite tudi privzeto integrirano razvojno okolje Python (IDLE), če ne poznate zagona Pythona prek ukazne vrstice.

Sorodno: Ukazni poziv (CMD) Ukazi, ki jih morate poznati

The shutil.copy metoda ne kopira metapodatkov izvorne datoteke. V bistvu vaša naprava ciljno datoteko v celoti vidi kot novo in ji da nove metapodatke.

Če želite kopirati metapodatke skupaj z izvirno datoteko, uporabite shutil.copy2 metoda:

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

Zgornja metoda ohrani izvirne metapodatke stare datoteke v ciljni datoteki. Ciljna datoteka na primer ohrani datum, ko ste ustvarili izvorno datoteko, njeno velikost in druge atribute.

The follow_symlinks argument je simbolična izjava povezave, ki omogoča shutil sledite absolutni poti. Zato ga morate vključiti, če sta izvorna in ciljna datoteka v različnih imenikih.

Če pa sta obe datoteki v vašem trenutnem delovnem imeniku, vam ni treba vključiti datoteke follow_symlinks. Če to storite, Python sproži sintaksno izjemo.

Torej, če prilepite izvorno datoteko v trenutni delovni imenik, mora biti vaša koda videti tako:

uvoz shutil
shutil.copy2 (sourceFile, destinationFile)

Poleg uporabe zgornjih metod shutil lahko uporabite tudi shutil.copyfile ali shutil.copyfileobj.

Uporaba shutil.copyfileobj je nekoliko drugačen, saj zahteva vgrajeno odprto funkcijo. Nato morate prebrati in zapisati binarno datoteko, tako da vključite "rb" in "wb" argumenti.

Poglejmo, kako shutil.copyfileobj metoda deluje z istimi imeniki, ki smo jih uporabljali prej:

uvoz shutil
sourceFilePath = odprto ("C: /Users/some_directories/my_folder/copy.txt", "rb")
destinationFilePath = odprta ("C: /Users/some_directories/destination/newFile.txt", "wb")
shutil.copyfileobj (sourceFilePath, destinationFilePath)

Upoštevajte, da shutil.copyfileobj () ne zahteva follow_symlinks prepir.

Vendar shutil.copyfile () deluje precej enako .kopirati in .copy2 naredi. Po svojih notranjih funkcijah se razlikujejo le nepomembno.

Za uporabo shutil.copyfile () metoda:

uvoz 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 z os modulom

The os modul uporablja dve vgrajeni metodi za kopiranje datotek; os.system () in os.popen () metode.

The os.system () metoda vam omogoča posnemanje okolja ukazne vrstice.

Vendar je pomanjkljivost metod os ta, da kopirajo samo datoteke v vašem trenutnem delovnem imeniku.

Za uporabo os.system () metoda v sistemu Windows:

uvoz os
os.system ('kopiraj vir.txt destinacijo.txt)

Uporabite lahko tudi vgrajeno xcopy Ukaz terminala Windows:

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

Za uporabo os.sistem metoda v Linuxu, zamenjaj kopirati s cp:

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

Kako kopirati datoteke z metodo os.popen

Če želite uporabiti to metodo, zamenjajte os.system () s os.popen ().

V sistemu Windows uporabite:

uvoz os
os.popen ('kopiraj vir.txt destinacijo.txt)

Kot smo storili z os.system (), zamenjati kopirati s cp za uporabo te metode v Linuxu:

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

Kako kopirati datoteke s Pythonovim podprocesnim modulom

Poleg zgornjih metod lahko uporabite tudi podproces () knjižnica za kopiranje datotek v Pythonu:

uvozi podproces kot sp
sp.call ("kopiraj sourceFile destinationFile", lupina = True)

Vendar v Linuxu uporabite:

uvozi podproces kot sp
sp.call ("cp sourceFile destinationFile", lupina = True)

The podproces knjižnica tudi uporablja subprocess.check_out () metoda. Deluje enako subprocess.call () naredi:

uvozi podproces kot sp
sp.check_out ("kopiraj sourceFile destinationFile", lupina = True)

V Linuxu zamenjajte kopirati s cp:

uvozi podproces kot sp
sp.check_out ("cp sourceFile destinationFIle", lupina = True)

Vendar, tako kot metode os, tudi metode podprocesa delujejo samo z datotekami v trenutnem delovnem imeniku.

Opomba: Datoteke lahko tudi kopirate v mapo, če je v istem delovnem imeniku kot izvorna datoteka. Vse, kar morate storiti, je, da ciljno ime datoteke zamenjate z imenom ciljne mape. Vendar se prepričajte, da sta ciljna mapa in izvorna datoteka v vašem trenutnem delovnem imeniku.

Kako kopirati datoteke v Pythonu brez uporabe knjižnic

Datoteke lahko kopirate tudi v Pythonu, ne glede na knjižnico. Tako kot metoda shutil, potrebujete le celotne poti izvornega in ciljnega imenika.

To lahko dosežete tako:

sourcePath = "C: /Users/source_directories/my_folder/copy.txt"
destinationPath = "C: /Users/some_directories/destination_directories/newFile.txt"
z odprtim (sourcePath, "rb") kot prebrano:
z odprtim (destinationPath, "wb") kot mojo datoteko:
myfile.write (read.read ())

Za naredite kodo za večkratno uporabo, lahko ga spremenite v funkcijo:

def copyFile (vir = Brez, cilj = Brez):
če ne (vir in cilj) == Brez:
z odprtim (izvor, "rb") kot prebrano:
z odprtim (cilj, "wb") kot moja datoteka:
myfile.write (read.read ())
sicer:
print ("Prosimo, vnesite izvorno in ciljno pot")
copyFile (sourcePath, destinationPath)

To je to. Pravkar ste ustvarili kopijo datotek za večkratno uporabo s Pythonom, ne da bi uporabili knjižnico.

Nadaljujte z avtomatizacijo nalog s Pythonom

Kopiranje datotek s Pythonom vam poleg tega, da ostanete osredotočeni na svojo kodo med gradnjo projektov, omogoča boljše razumevanje upravljanja datotek s Pythonom. Poigravanje z nalogami Pythona pa je način za izboljšanje vaše sposobnosti Pythona, še posebej, če ste začetnik.

Na primer, lahko spremenite datum in uro v računalniku z os modulom. Če želite, lahko s Pythonom napišete tudi ukaze po meri.

E-naslov
Kako s klikom ustvariti lastne programe ukazne vrstice v Pythonu

Želite izdelati lastne programe ukazne vrstice Python, vendar se vam zdi pretežko? Za poenostavitev kode uporabite Click, uporabno orodje Python.

Sorodne teme
  • Programiranje
  • Python
O avtorju
Idowu Omisola (56 objavljenih člankov)

Idowu je navdušen nad vsemi pametnimi tehnologijami in produktivnostjo. V prostem času se poigrava s kodiranjem in preklopi na šahovnico, ko mu je dolgčas, a se občasno rad tudi odmakne od rutine. Njegova strast do tega, da ljudem kaže pot okoli sodobne tehnologije, ga spodbuja, da piše več.

Več od Idowu Omisola

Naročite se na naše novice

Pridružite se našemu glasilu za tehnične nasvete, preglede, brezplačne e-knjige in ekskluzivne ponudbe!

Še en korak…!

Potrdite svoj e-poštni naslov v e-poštnem sporočilu, ki smo vam ga pravkar poslali.

.