logo

Pythona | metoda shutil.copyfile().

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