Chcete zlepšit své dovednosti v Pythonu? Pak můžete zkusit na počítači provést některé úkoly pomocí Pythonu. Kopírování a vkládání souborů z jednoho adresáře do druhého pomocí Pythonu je zábavný způsob, jak toho dosáhnout.
Kromě toho, že vás baví, umožňuje vám rychle číst a zapisovat soubory, aniž byste se rozptylovali od kódu. Pokud jste v Pythonu noví, je to dovednost, kterou možná budete muset vyzvednout tak či onak. Pojďme tedy zjistit, jak prostřednictvím tohoto příspěvku kopírovat soubory pomocí Pythonu.
Požadavky na kopírování souborů pomocí Pythonu
Existuje mnoho způsobů, jak kopírovat a vkládat soubory pomocí Pythonu. Požadavek na to se tedy liší a závisí na metodě, kterou se rozhodnete použít.
I když možná nebudete potřebovat další moduly ke kopírování souborů pomocí Pythonu, můžete i nadále používat vestavěné knihovny, pokud chcete.
Například pokud chcete použít os metoda, musíte ji importovat do svého kódu. Jedním z populárních způsobů kopírování souborů pomocí Pythonu je však použití Shutil knihovna.
Podívejme se, jak můžeme tyto různé metody použít ke kopírování souborů pomocí Pythonu.
Jak kopírovat soubory pomocí zabudované knihovny Shutil v Pythonu
The Shutil modul je vestavěná a výkonná knihovna Pythonu pro rychlé čtení a zápis souborů v Pythonu.
Chcete-li jej použít, musíte zadat pouze úplnou cestu ke zdrojovým a cílovým souborům.
V podstatě, Shutil bere tento formát:
shutil.copy ([cesta ke zdrojovému adresáři], [cesta k cílovému adresáři], follow_symlinks = True)
Například používá následující kód shutil.copy () zkopírovat soubor s názvem copy.txt ze složky s názvem my_folder do jiného jmenovaného destinace. Poté přejmenuje cílový soubor na newFile.txt:
importovat závěrku
sourceFile = "C: /Users/some_directories/my_folder/copy.txt"
destinationFile = "C: /Users/some_directories/destination/newFile.txt"
shutil.copy (sourceFile, destinationFile, follow_symlinks = True)
Svůj kód můžete napsat libovolný editor kódu podle vašeho výběru. Poté jej můžete spustit pomocí příkazového řádku.
Můžete však také použít výchozí integrované vývojové prostředí Pythonu (IDLE), pokud nejste obeznámeni se spuštěním Pythonu prostřednictvím příkazového řádku.
Příbuzný: Příkazy příkazového řádku (CMD), které musíte znát
The shutil.copy metoda nekopíruje metadata zdrojového souboru. V podstatě váš počítač vidí cílový soubor jako nový zcela nový a poskytuje mu nová metadata.
Chcete-li však zkopírovat metadata spolu s původním souborem, použijte shutil.copy2 metoda:
importovat závěrku
shutil.copy2 (sourceFile, destinationFile, follow_symlinks = True)
Výše uvedená metoda zachovává původní metadata starého souboru v cílovém souboru. Například cílový soubor si zachovává datum, kdy jste vytvořili zdrojový soubor, jeho velikost a další atributy.
The follow_symlinks argument je deklarace symbolického odkazu, která umožňuje Shutil následujte absolutní cestu. Proto je nutné jej zahrnout, pokud jsou zdrojové a cílové soubory v různých adresářích.
Pokud jsou ale oba soubory ve vašem aktuálním pracovním adresáři, nemusíte uvádět a follow_symlinks. Pokud tak učiníte, Python vyvolá výjimku syntaxe.
Pokud tedy vkládáte zdrojový soubor do svého aktuálního pracovního adresáře, měl by váš kód vypadat takto:
importovat závěrku
shutil.copy2 (sourceFile, destinationFile)
Kromě použití výše uvedených metod shutil můžete také použít shutil.copyfile nebo shutil.copyfileobj.
Použitím shutil.copyfileobj je trochu jiný, protože vyžaduje vestavěný otevřeno funkce. Pak musíte číst a psát binárně včetně "rb" a "wb" argumenty.
Podívejme se, jak shutil.copyfileobj metoda funguje pomocí stejných adresářů, které jsme použili dříve:
importovat závěrku
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)
Všimněte si, že shutil.copyfileobj () nevyžaduje follow_symlinks argument.
Nicméně, shutil.copyfile () funguje docela stejně .kopírovat a .copy2 dělá. Liší se pouze nepatrně ve svých vnitřních funkcích.
Chcete-li použít shutil.copyfile () metoda:
importovat závěrku
sourceFilePath = "C: /Users/some_directories/my_folder/copy.txt"
destinationFilePath = "C: /Users/some_directories/destination/newFile.txt"
shutil.copyfile (sourceFilePath, destinationFilePath)
Jak kopírovat soubory pomocí modulu os
The os modul používá dvě vestavěné metody pro kopírování souborů; os. system () a os.popen () metody.
The os. system () metoda umožňuje napodobit prostředí příkazového řádku.
Nedostatkem metod os je však to, že kopírují pouze soubory ve vašem aktuálním pracovním adresáři.
Chcete-li použít os. system () metoda ve Windows:
import os
os.system ('copy source.txt destination.txt)
Můžete také použít vestavěný xcopy Příkaz terminálu Windows:
import os
os.system ('xcopy source.txt destination.txt)
Chcete-li použít os. systém metoda na Linuxu, nahradit kopírovat s str:
import os
os.system ('cp source.txt destination.txt)
Jak kopírovat soubory pomocí metody os.popen
Chcete-li použít tuto metodu, nahraďte ji os. system () s os.popen ().
Ve Windows použijte:
import os
os.popen ('copy source.txt destination.txt)
Jak jsme udělali s os. system (), vyměnit kopírovat s str použít tuto metodu v systému Linux:
import os
os.popen ('cp source.txt destination.txt)
Jak kopírovat soubory pomocí podprocesního modulu Pythonu
Kromě výše uvedených metod můžete také použít podproces () knihovna pro kopírování souborů v Pythonu:
importovat podproces jako sp
sp.call ("copy sourceFile destinationFile", shell = True)
V systému Linux však použijte:
importovat podproces jako sp
sp.call ("cp sourceFile destinationFile", shell = True)
The podproces knihovna také používá subprocess.check_out () metoda. Funguje to stejně subprocess.call () dělá:
importovat podproces jako sp
sp.check_out ("copy sourceFile destinationFile", shell = True)
V systému Linux vyměňte kopírovat s str:
importovat podproces jako sp
sp.check_out ("cp sourceFile destinationFIle", shell = True)
Stejně jako metody os však metody podprocesu fungují pouze se soubory ve vašem aktuálním pracovním adresáři.
Poznámka: Můžete také kopírovat soubory do složky, pokud je ve stejném pracovním adresáři jako zdrojový soubor. Vše, co musíte udělat, je nahradit cílový název souboru názvem cílové složky. Ujistěte se však, že cílová složka a zdrojový soubor jsou ve vašem aktuálním pracovním adresáři.
Jak kopírovat soubory v Pythonu bez použití knihoven
Můžete také kopírovat soubory v Pythonu bez závislosti na jakékoli knihovně. Stejně jako metoda shutil potřebujete pouze úplné cesty zdrojových a cílových adresářů.
Zde je postup, jak toho dosáhnout:
sourcePath = "C: /Users/source_directories/my_folder/copy.txt"
destinationPath = "C: /Users/some_directories/destination_directories/newFile.txt"
s otevřenou (sourcePath, "rb") ve čtení:
s otevřeným (destinationPath, "wb") jako myfile:
myfile.write (read.read ())
Na udělejte kód znovu použitelným, můžete jej upravit do funkce:
def copyFile (zdroj = žádný, cíl = žádný):
pokud ne (zdroj a cíl) == žádný:
s otevřeným (zdroj, "rb") ve čtení:
s otevřeným (cíl, "wb") jako myfile:
myfile.write (read.read ())
jiný:
tisk ("Zadejte cestu ke zdroji a cíli")
copyFile (sourcePath, destinationPath)
A je to. Právě jste vytvořili opakovaně použitelnou kopírku souborů s Pythonem bez použití jakékoli knihovny.
Pokračujte v automatizaci úkolů pomocí Pythonu
Kromě toho, že vám při vytváření projektů pomůže soustředit se na svůj kód, kopírování souborů pomocí Pythonu vám umožní lépe porozumět správě souborů pomocí Pythonu. Hraní si s úkoly v Pythonu je způsob, jak zlepšit své dovednosti v Pythonu, zvláště pokud jste začátečník.
Například můžete změnit datum a čas v počítači pomocí modulu os. Můžete dokonce psát vlastní bash příkazy s Pythonem, pokud chcete.
Chcete si vytvořit svůj vlastní program z příkazového řádku Pythonu, ale zdá se vám to příliš těžké? Použijte Click, užitečný nástroj v Pythonu, ke zjednodušení kódu.
- Programování
- Krajta
Idowu je vášnivý pro cokoli inteligentního a produktivního. Ve svém volném čase si hraje s kódováním a když se nudí, přepne se na šachovnici, ale také rád občas vybočuje z rutiny. Jeho vášeň ukázat lidem cestu kolem moderních technologií ho motivuje k dalšímu psaní.
Přihlaste se k odběru našeho zpravodaje
Připojte se k našemu zpravodaji s technickými tipy, recenzemi, bezplatnými elektronickými knihami a exkluzivními nabídkami!
Ještě jeden krok…!
V e-mailu, který jsme vám právě poslali, potvrďte svou e-mailovou adresu.