Moduł Shutil w Pythonie pomaga zautomatyzować proces kopiowanie i usuwanie plików i katalogi. Należy do standardowych modułów narzędziowych Pythona.
Moduł Shutil (skrót od narzędzia powłoki) udostępnia także wiele funkcji operacji wysokiego poziomu na plikach i kolekcjach plików.
Co to jest metoda Shutil.copyfile()?
The Shutil.copyfile() metoda w Pyton służy do kopiowania zawartości pliku źródłowego do pliku docelowego. Metadane pliku nie są kopiowane. Źródło i miejsce docelowe muszą reprezentować plik, a miejsce docelowe musi umożliwiać zapis. Jeśli miejsce docelowe już istnieje, zostanie ono zastąpione plikiem źródłowym, w przeciwnym razie zostanie utworzony nowy plik.
Jeśli źródło i miejsce docelowe reprezentują ten sam plik, wówczas plik Wyjątek SameFileError zostanie podniesione.
Shutil.copyfile() Składnia metody
shutil.copyfile(źródło, miejsce docelowe, *, follow_symlinks = True)
Parametry:
- źródło : Ciąg reprezentujący ścieżkę pliku źródłowego.
- miejsce docelowe : Ciąg reprezentujący ścieżkę pliku docelowego.
- follow_symlinks (opcjonalnie): Domyślna wartość tego parametru to True. Jeśli False i source reprezentuje dowiązanie symboliczne, zamiast kopiować plik, zostanie utworzone nowe dowiązanie symboliczne.
Notatka: Znak „*” na liście parametrów wskazuje, że wszystkie następujące parametry (w naszym przypadku „follow_symlinks”) są parametrami zawierającymi wyłącznie słowa kluczowe i można je podać, używając ich nazwy, a nie parametrów pozycyjnych.
Zwroty:
Ta metoda zwraca ciąg znaków reprezentujący ścieżkę nowo utworzonego pliku.
Jak skopiować plik przy użyciu metody Shutil.copyfile() w Pythonie
Używając metody Shutil.copyfile() możesz łatwo skopiować plik do nowego pliku. Aby skorzystać z tej metody, wystarczy podać lokalizację pliku źródłowego i lokalizację pliku docelowego.
Rozumiemy to lepiej na przykładzie:
skrypt ładowania javascript
Użycie metody Shutil.copyfile() do kopiowania pliku ze źródła do miejsca docelowego
W tym przykładzie zobaczymy użycie metody Shutil.copyfile() do kopiowania pliku ze źródła do miejsca docelowego za pomocą Pythona.
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)> |
>
>
Wyjście:
Before copying file: ['hrithik.webp'ltr'>Tutaj widzimy, że podczas korzystania z metody Shutil.copyfile() występują możliwe błędy. Jeśli źródło i miejsce docelowe reprezentują ten sam plik, zostanie zgłoszony wyjątek „SameFileError”. Jeśli miejscem docelowym jest katalog, zostanie zgłoszony wyjątek „IsADirectoryError”. Jeśli miejsce docelowe nie jest zapisywalne, zostanie zgłoszony wyjątek „PermissionError”. Python3 # Program w języku Python wyjaśniający zamknięcie .copyfile() metoda # importowanie modułu Shutil import Shutil # Ścieżka źródłowa source = '/home/User/Documents/file.txt' # Ścieżka docelowa miejsce docelowe = '/home/User/Documents/file.txt' # Skopiuj zawartość # źródła do miejsca docelowego Shutil.copyfile(źródło, miejsce docelowe) Dane wyjściowe: Traceback (ostatnie ostatnie wywołanie): Plik 'copy.py', linia 31, w Shutil.copyfile(źródło, miejsce docelowe) Plik ' /usr/lib/python3.6/shutil.py', linia 104, w pliku kopii raise SameFileError('{!r} i {!r} to ten sam plik'.format(src, dst)) shutil. SameFileError: '/home/User/Documents/file.txt' i '/home/User/Documents/file.txt' to ten sam plik. Ścieżka docelowa: /home/User/Documents/file(copy). txt Obsługa błędów Tutaj zajmujemy się obsługą błędów podczas używania metody Shutil.copyfile(). Python3 # Program w języku Python wyjaśniający metodę Shutil.copyfile() # importowanie modułu Shutil import Shutil # Ścieżka źródłowa source = '/home/User/Documents/file.txt' # Ścieżka docelowa miejsce docelowe = '/home/User/Documents ' # Skopiuj zawartość # źródła do miejsca docelowego try: Shutil.copyfile(źródło, miejsce docelowe) print('Plik został skopiowany pomyślnie.') # Jeśli źródło i miejsce docelowe są takie same, z wyjątkiem Shutil.SameFileError: print('Źródło i miejsce docelowe reprezentuje ten sam plik.') # Jeśli miejsce docelowe jest katalogiem. z wyjątkiem IsADirectoryError: print('Miejscem docelowym jest katalog.') # Jeśli jest jakiś problem z uprawnieniami z wyjątkiem PermissionError: print('Odmowa uprawnień.') # W przypadku innych błędów z wyjątkiem: print('Wystąpił błąd podczas kopiowania pliku .') Dane wyjściowe: Miejscem docelowym jest katalog. Omówiliśmy metodę kopiowania pliku w Pythonie za pomocą funkcji Shutil.copyfile(). Jest to bardzo łatwa w użyciu metoda kopiowania pliku. Jest to bardzo przydatne, gdy chcesz utworzyć duplikat pliku. Przeczytaj także: Jak skopiować plik w Python3? metoda shutil.copy() Skopiuj zawartość jednego pliku do innego pliku Skopiuj wszystkie pliki z jednego katalogu do drugiego za pomocą Pythona Jak utworzyć duplikat istniejącego pliku za pomocą Pythona?>