Kopírování Souboru v Pythonu
V našich předchozích tutoriálů, naučili jsme se některé Python operace se soubory jako je čtení, psaní a mazání. Naučme se kopírovat soubor v Pythonu v tomto tutoriálu.
můžeme zkopírovat soubor v Pythonu za použití různých metod podle níže uvedených modulů,
-
shutil
modul -
os
modul -
subprocess
modul
V tomto tutoriálu, budeme se učit s využitím různých metod, které poskytly výše moduly kopírování souboru v Pythonu.
1. Modul shutil Kopírování Souboru v Pythonu
shutil
modul poskytuje snadné použití metod, pomocí které můžeme odstranit, stejně jako kopírování souborů v Pythonu. Podívejme se na různé metody definované v tomto modulu speciálně používané pro kopírování.
1. copyfileobj()
copyfileobj()
metoda zkopíruje obsah zdrojového souboru do cílového souboru pomocí jejich příslušných souborů objektů. Pojďme se podívat na kód níže,
import shutilsrc_file_obj=open('src.txt', 'rb')targ_file_obj= open('targ.txt' , 'wb')shutil.copyfileobj( src_file_obj , targ_file_obj )
Poznámka:, že soubor objektů by měly směřovat do 0 pozice (pozice start) pro oba příslušné zdrojové a cílové soubory, zkopírovat celý obsah.
2. copyfile ()
metoda copyfile()
zkopíruje obsah ze zdroje do cílového souboru pomocí cest k souborům. Vrátí cestu k cílovému souboru. Cesta cílového souboru musí být zapisovatelná, jinak by došlo k výjimce OSerror.
import shutilshutil.copyfile( 'src.txt' , 'targ.txt' )
je třeba mít na paměti, že metoda umožňuje používat pouze cesty k souborům, nikoli adresáře.
3. copy ()
tato metoda zkopíruje zdrojový soubor do cílového souboru nebo cílového adresáře. Na rozdíl od copyfile()
metoda copy()
umožňuje použít cílový adresář jako argument, a také kopie souboru permissions. copy()
vrátí cestu k cílovému souboru po zkopírování obsahu.
import shutilshutil.copy('/Users/test/file.txt', '/Users/target/')
soubor S názvem ‚soubor.txt ‚je vytvořen v cílovém cíli s veškerým obsahem a oprávněními zkopírovanými z‘ / Users / test / file.txt‘.
4. copy2()
copy2()
metoda se používá přesně stejným způsobem jako copy()
metoda. Fungují také stejným způsobem, s výjimkou skutečnosti, že copy2()
také kopíruje metadata ze zdrojového souboru.
import shutilshutil.copy2('/Users/test/file.txt', '/Users/target/')
2. os modul pro kopírování souboru v Pythonu
1. popen ()
metoda popen()
vytvoří potrubí pro příkaz cmd. Metoda vrací objekt souboru připojený k potrubí cmd. Podívejte se na níže uvedený kód,
#for Windowsimport osos.popen('copy src.txt targ.txt' )
#for Linuximport osos.popen('cp src.txt targ.txt' )
S touto metodou, můžeme nejen kopírovat soubory, ale také provést jiné běžné příkazy.
2. system ()
metoda system()
přímo volá a provádí příkazový argument v subshell. Jeho návratová hodnota závisí na operačním systému, který program spouští. Pro Linux je to Stav ukončení, zatímco pro Windows je to návratová hodnota systémovým shellem.
#for Linuximport osos.system(' cp src.txt targ.txt' )
#for Windowsimport osos.system(' copy src.txt targ.txt' )
3. modul podprocesu pro kopírování souboru v Pythonu
1. zavolat()
call()
metoda podobná os.system()
přímo volá nebo spustí příkaz předán jako argument funkci.
# In Linuximport subprocesssubprocess.call('cp source.txt target.txt', shell=True)
Leave a Reply