Chcete si vylepšiť svoje zručnosti v jazyku Python? Potom môžete skúsiť vykonať niektoré úlohy na počítači pomocou Pythonu. Kopírovanie a vkladanie súborov z jedného adresára do druhého pomocou Pythonu je zábavný spôsob.
Okrem toho, že je zábavný, umožňuje vám rýchlo čítať a zapisovať súbory bez toho, aby vás vyrušoval váš kód. Ak ste v Pythone noví, je to zručnosť, ktorú budete pravdepodobne potrebovať, aby ste sa naučili tak či onak. Poďme teda zistiť, ako prostredníctvom tohto príspevku kopírovať súbory s Pythonom.
Požiadavky na kopírovanie súborov pomocou Pythonu
Existuje mnoho spôsobov, ako kopírovať a vkladať súbory pomocou Pythonu. Požiadavky na to sa teda líšia a závisia od metódy, ktorú sa rozhodnete použiť.
Aj keď možno nebudete potrebovať ďalšie moduly na kopírovanie súborov pomocou Pythonu, v prípade potreby môžete stále používať vstavané knižnice.
Napríklad, ak chcete použiť os metódou, musíte ich importovať do svojho kódu. Jedným z populárnych spôsobov kopírovania súborov pomocou Pythonu je však použitie uzáver knižnica.
Pozrime sa, ako môžeme tieto rôzne metódy použiť na kopírovanie súborov pomocou Pythonu.
Ako kopírovať súbory pomocou zabudovanej knižnice Shutil v Pythone
The uzáver modul je zabudovaná a výkonná knižnica Pythonu na rýchle čítanie a zápis súborov v Pythone.
Ak ho chcete použiť, musíte zadať iba úplnú cestu k zdrojovým a cieľovým súborom.
V podstate, uzáver má tento formát:
shutil.copy ([cesta k zdrojovému adresáru], [cesta k cieľovému adresáru], follow_symlinks = True)
Používa sa napríklad nasledujúci kód shutil.copy () skopírovať súbor s názvom copy.txt z priečinka s názvom moja_slozka do iného menovaného destinácia. Cieľový súbor potom premenuje na newFile.txt:
import uzávierka
sourceFile = "C: /Users/some_directories/my_folder/copy.txt"
destinationFile = "C: /Users/some_directories/destination/newFile.txt"
shutil.copy (sourceFile, destinationFile, follow_symlinks = True)
Váš kód môžete napísať do ľubovoľný editor kódov podľa vášho výberu. Potom ho môžete spustiť pomocou príkazového riadku.
Môžete však použiť aj predvolené integrované vývojové prostredie Python (IDLE), ak nie ste oboznámení so spustením Pythonu prostredníctvom príkazového riadku.
Súvisiace: Príkazy príkazového riadku (CMD), ktoré musíte vedieť
The shutil.copy metóda nekopíruje metadáta zdrojového súboru. Váš počítač v podstate vidí cieľový súbor ako nový nový a poskytne mu nové metaúdaje.
Ak však chcete skopírovať metadáta spolu s pôvodným súborom, použite shutil.copy2 metóda:
import uzávierka
shutil.copy2 (sourceFile, destinationFile, follow_symlinks = True)
Vyššie uvedená metóda zachováva pôvodné metadáta starého súboru v cieľovom súbore. Cieľový súbor si napríklad zachová dátum, kedy ste vytvorili zdrojový súbor, jeho veľkosť a ďalšie atribúty.
The follow_symlinks argument je deklarácia symbolického odkazu, ktorá umožňuje uzáver ísť absolútnou cestou. Preto ich musíte zahrnúť, ak sú zdrojové a cieľové súbory v rôznych adresároch.
Ale ak sú oba súbory vo vašom aktuálnom pracovnom adresári, nemusíte uvádzať a follow_symlinks. Ak tak urobíte, Python vyvolá výnimku syntaxe.
Ak teda vkladáte zdrojový súbor do svojho aktuálneho pracovného adresára, váš kód by mal vyzerať takto:
import uzávierka
shutil.copy2 (sourceFile, destinationFile)
Okrem použitia vyššie uvedených metód uzávierky môžete tiež použiť shutil.copyfile alebo shutil.copyfileobj.
Použitím shutil.copyfileobj je trochu iný, pretože vyžaduje zabudovaný modul otvorené funkcia. Potom musíte čítať a písať binárne súbory vrátane znaku „rb“ a „wb“ argumenty.
Pozrime sa, ako shutil.copyfileobj metóda pracuje s rovnakými adresármi, aké sme používali predtým:
import uzávierka
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)
Poznač si to shutil.copyfileobj () nevyžaduje follow_symlinks argument.
Avšak shutil.copyfile () funguje pekne rovnako .kopírovať a .copy2 robí. Iba nepatrne sa líšia svojimi vnútornými funkciami.
Ak chcete použiť shutil.copyfile () metóda:
import uzávierka
sourceFilePath = "C: /Users/some_directories/my_folder/copy.txt"
destinationFilePath = "C: /Users/some_directories/destination/newFile.txt"
shutil.copyfile (sourceFilePath, destinationFilePath)
Ako kopírovať súbory pomocou modulu os
The os modul používa na kopírovanie súborov dve zabudované metódy; os.system () a os.popen () metódy.
The os.system () metóda umožňuje napodobniť prostredie príkazového riadku.
Nedostatkom metód operačného systému však je, že kopírujú iba súbory vo vašom aktuálnom pracovnom adresári.
Ak chcete použiť os.system () metóda v systéme Windows:
import os
os.system ('copy source.txt destination.txt)
Môžete tiež použiť vstavaný xcopy Príkaz terminálu Windows:
import os
os.system ('xcopy source.txt destination.txt)
Ak chcete použiť os.systém metóda na Linuxe, nahraďte kópia s cp:
import os
os.system ('cp source.txt destination.txt)
Ako kopírovať súbory pomocou metódy os.popen
Ak chcete použiť túto metódu, nahraďte ju os.system () s os.popen ().
V systéme Windows použite:
import os
os.popen ('copy source.txt destination.txt)
Ako sme to urobili os.system (), vymeniť kópia s cp použiť túto metódu v systéme Linux:
import os
os.popen ('cp source.txt destination.txt)
Ako kopírovať súbory pomocou modulu podprocesu Pythonu
Okrem vyššie uvedených metód môžete tiež použiť podproces () knižnica na kopírovanie súborov v Pythone:
importovať podproces ako sp
sp.call ("copy sourceFile destinationFile", shell = True)
V systéme Linux však použite:
importovať podproces ako sp
sp.call ("cp sourceFile destinationFile", shell = True)
The podproces knižnica tiež používa subprocess.check_out () metóda. Funguje to rovnako subprocess.call () robí:
importovať podproces ako sp
sp.check_out ("copy sourceFile destinationFile", shell = True)
V systéme Linux nahraďte kópia s cp:
importovať podproces ako sp
sp.check_out ("cp sourceFile destinationFIle", shell = True)
Rovnako ako metódy os však aj metódy podprocesu fungujú iba so súbormi vo vašom aktuálnom pracovnom adresári.
Poznámka: Môžete tiež kopírovať súbory do priečinka, ak je v rovnakom pracovnom adresári ako zdrojový súbor. Všetko, čo musíte urobiť, je nahradiť cieľový názov súboru názvom cieľového priečinka. Uistite sa však, že cieľový priečinok a zdrojový súbor sú vo vašom aktuálnom pracovnom adresári.
Ako kopírovať súbory v Pythone bez použitia knižníc
Môžete tiež kopírovať súbory v Pythone bez toho, aby ste záviseli od akejkoľvek knižnice. Rovnako ako metóda shutil, potrebujete iba úplné cesty k zdrojovému a cieľovému adresáru.
Takto to dosiahnete:
sourcePath = "C: /Users/source_directories/my_folder/copy.txt"
destinationPath = "C: /Users/some_directories/destination_directories/newFile.txt"
s otvoreným (sourcePath, "rb"), ako je prečítané:
s otvoreným (destinationPath, "wb") ako myfile:
myfile.write (read.read ())
To zaistiť opätovné použitie kódu, môžete ho upraviť na funkciu:
def copyFile (zdroj = žiadny, cieľ = žiadny):
ak nie (zdroj a cieľ) == žiadne:
s otvoreným (zdroj, "rb") v znení:
s otvoreným (cieľ, "wb") ako myfile:
myfile.write (read.read ())
inak:
tlač („Zadajte cestu k zdroju a cieľu“)
copyFile (sourcePath, destinationPath)
To je všetko. Práve ste vytvorili opakovateľný kopírovač súborov s programom Python bez použitia akejkoľvek knižnice.
Pokračujte v automatizácii úloh pomocou Pythonu
Okrem toho, že vám kopírovanie súborov pomocou Pythonu pomôže pri sústredení sa na váš kód pri vytváraní projektov, umožní vám lepšie porozumieť správe súborov pomocou Pythonu. Zahrávanie si s úlohami Pythonu je však spôsob, ako si vylepšiť svoje zručnosti v Pythone, najmä ak ste začiatočník.
Napríklad môžete zmeniť dátum a čas na počítači pomocou modulu os. Ak chcete, môžete v Pythone dokonca napísať vlastné príkazy bash.
Chcete si vytvoriť svoje vlastné programy príkazového riadku v jazyku Python, ale zdá sa vám to príliš ťažké? Na zjednodušenie kódu použite Click, užitočný nástroj v jazyku Python.
- Programovanie
- Python
Idowu je vášnivý pre čokoľvek inteligentné technológie a produktivitu. Vo voľnom čase sa hrá s kódovaním a keď sa nudí, prepne na šachovnicu, ale tiež rád občas vybočuje z rutiny. Jeho vášeň ukázať ľuďom cestu v moderných technológiách ho motivuje k tomu, aby písal viac.
Prihlásiť sa ku odberu noviniek
Pripojte sa k nášmu bulletinu s technickými tipmi, recenziami, bezplatnými elektronickými knihami a exkluzívnymi ponukami!
Ešte jeden krok…!
V e-maile, ktorý sme vám práve poslali, potvrďte svoju e-mailovú adresu.