logo

Python | metoda shutil.copyfile().

Modul Shutil v Pythonu pomáhá automatizovat proces kopírování a odstraňování souborů a adresáře. Spadá pod standardní obslužné moduly Pythonu.

Modul Shutil (zkratka pro shell utility) také poskytuje mnoho funkcí pro operace na vysoké úrovni se soubory a kolekcemi souborů.



Co je metoda Shutil.copyfile()?

The shutil.copyfile() metoda v Krajta se používá ke zkopírování obsahu zdrojového souboru do cílového souboru. Metadata souboru se nezkopírují. Zdroj a cíl musí představovat soubor a cíl musí být zapisovatelný. Pokud cíl již existuje, bude nahrazen zdrojovým souborem, jinak bude vytvořen nový soubor.

Pokud zdroj a cíl představují stejný soubor, pak Výjimka SameFileError bude zvýšen.

shutil.copyfile() Syntaxe metody

shutil.copyfile(zdroj, cíl, *, follow_symlinks = True)



Parametry:

  • zdroj : Řetězec představující cestu ke zdrojovému souboru.
  • destinace : Řetězec představující cestu k cílovému souboru.
  • follow_symlinks (volitelné) : Výchozí hodnota tohoto parametru je True. Pokud False a source představuje symbolický odkaz, bude místo zkopírování souboru vytvořen nový symbolický odkaz.

Poznámka: ‚*‘ v seznamu parametrů znamená, že všechny následující parametry (zde v našem případě ‚follow_symlinks‘) jsou parametry pouze pro klíčová slova a lze je zadat pomocí jejich názvu, nikoli jako poziční parametry.

Vrácení:

Tato metoda vrací řetězec, který představuje cestu k nově vytvořenému souboru.

Jak zkopírovat soubor pomocí metody Shutil.copyfile() v Pythonu

Pomocí metody shutil.copyfile() můžete snadno zkopírovat soubor do nového souboru. Chcete-li použít tuto metodu, stačí zmínit umístění zdrojového souboru a umístění cílového souboru.



Pojďme to lépe pochopit na příkladu:

linkedlist java

Použití metody shutil.copyfile() ke zkopírování souboru ze zdroje do cíle

Zde v tomto příkladu uvidíme použití Shutil.copyfile() při kopírování souboru ze zdroje do cíle pomocí Pythonu.

Python3




# Python program to explain shutil.copyfile() method> # importing os module> import> os> # importing shutil module> import> shutil> # path> path>=> '/home/User/Documents'> # List files and directories> # in '/home/User/Documents'> print>(>'Before copying file:'>)> print>(os.listdir(path))> # Source path> source>=> '/home/User/Documents/file.txt'> # Destination path> destination>=> '/home/User/Documents/file(copy).txt'> # Copy the content of> # source to destination> dest>=> shutil.copyfile(source, destination)> # List files and directories> # in '/home / User / Documents'> print>(>'After copying file:'>)> print>(os.listdir(path))> # Print path of newly> # created file> print>(>'Destination path:'>, dest)>

>

>

Výstup:

 Before copying file: ['hrithik.webp'ltr'>Zde vidíme, že při použití metody shutil.copyfile() dochází k možným chybám. Pokud zdroj a cíl představují stejný soubor, bude vyvolána výjimka 'SameFileError' Pokud je cílem adresář, bude vyvolána výjimka 'IsADirectoryError' Pokud cíl není zapisovatelný, bude vyvolána výjimka 'PermissionError' Python3 # Program Python pro vysvětlení shutil Metoda .copyfile() # import modulu Shutil import Shuil # Zdrojová cesta source = '/home/User/Documents/file.txt' # Cílová cesta cíl = '/home/User/Documents/file.txt' # Zkopírujte obsah # zdroje do cíle Shutil.copyfile(zdroj, cíl) Výstup: Traceback (poslední poslední volání): Soubor 'copy.py', řádek 31, v Shutil.copyfile(zdroj, cíl) Soubor ' /usr/lib/python3.6/shutil.py', řádek 104, v copyfile zvýšit SameFileError('{!r} a {!r} jsou stejný soubor'.format(src, dst)) Shutil. SameFileError: '/home/User/Documents/file.txt' a '/home/User/Documents/file.txt' jsou stejný soubor Cílová cesta: /home/User/Documents/file(kopie). txt Zpracování chyb Zde se zabýváme Zpracováním chyb při použití metody Shutil.copyfile(). Python3 # Pythonský program pro vysvětlení metody Shutil.copyfile() # import modulu Shutil import Shutil # Zdrojová cesta source = '/home/User/Documents/file.txt' # Cílová cesta cíl = '/home/User/Documents ' # Zkopírujte obsah # zdroje do cíle zkuste: shutil.copyfile(zdroj, cíl) print('Soubor úspěšně zkopírován.') # Pokud jsou zdroj a cíl stejné kromě Shutil.SameFileError: print('Zdroj a cíl představuje stejný soubor.') # Pokud je cílem adresář. kromě IsADirectoryError: print('Cíl je adresář.') # Pokud se vyskytne nějaký problém s oprávněním kromě PermissionError: print('Oprávnění odepřeno.') # Pro ostatní chyby kromě: print('Při kopírování souboru došlo k chybě .') Výstup: Cíl je adresář. Probrali jsme metodu kopírování souboru v Pythonu pomocí funkce shutil.copyfile(). Je to velmi snadno použitelná metoda, kterou můžete použít ke kopírování souboru. Je to velmi užitečné, když chcete vytvořit duplicitní soubor.   Přečtěte si také: Jak zkopírovat soubor v Pythonu3?   Metoda shutil.copy() Kopírování obsahu jednoho souboru do jiného souboru Kopírování všech souborů z jednoho adresáře do druhého pomocí Pythonu Jak vytvořit duplicitní soubor existujícího souboru pomocí Pythonu? >