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? >