Articles

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)