logo

Python | mètode shutil.copyfile().

Mòdul Shutil en Python ajuda a automatitzar el procés de copiar i eliminar fitxers i directoris. Es troba sota els mòduls d'utilitat estàndard de Python.

El mòdul Shutil (abreviatura de shell utility) també ofereix moltes funcions d'operacions d'alt nivell en fitxers i col·leccions de fitxers.



Què és el mètode Shutil.copyfile()?

El shutil.copyfile() mètode en Python s'utilitza per copiar el contingut del fitxer font al fitxer de destinació. Les metadades del fitxer no es copien. La font i la destinació han de representar un fitxer i la destinació s'ha de poder escriure. Si la destinació ja existeix, se substituirà pel fitxer font, en cas contrari es crearà un fitxer nou.

Si la font i la destinació representen el mateix fitxer, aleshores Excepció SameFileError s'aixecarà.

shutil.copyfile() Sintaxi del mètode

shutil.copyfile(font, destinació, *, follow_symlinks = True)



Paràmetres:

  • font : una cadena que representa la ruta del fitxer font.
  • destinació : una cadena que representa la ruta del fitxer de destinació.
  • follow_symlinks (opcional): el valor per defecte d'aquest paràmetre és True. Si False i font representa un enllaç simbòlic, es crearà un nou enllaç simbòlic en lloc de copiar el fitxer.

Nota: El '*' a la llista de paràmetres indica que tots els paràmetres següents (en el nostre cas, 'follow_symlinks') són paràmetres només de paraules clau i es poden proporcionar amb el seu nom, no com a paràmetres de posició.

Devolucions:

Aquest mètode retorna una cadena que representa la ruta del fitxer acabat de crear.

Com copiar un fitxer amb el mètode Shutil.copyfile() a Python

Mitjançant el mètode shutil.copyfile() podeu copiar fàcilment un fitxer a un fitxer nou. Per utilitzar aquest mètode només cal esmentar la ubicació del fitxer font i la ubicació del fitxer de destinació.



Entenem-ho millor amb un exemple:

índex de cadena de Java

Ús del mètode shutil.copyfile() per copiar un fitxer de la font a la destinació

Aquí, en aquest exemple, veurem l'ús de shutil.copyfile() sobre com copiar un fitxer de l'origen a la destinació mitjançant Python.

Python 3




# 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)>

>

>

Sortida:

Aquí veiem que es produeixen possibles errors mentre s'utilitza el mètode shutil.copyfile(). Si l'origen i la destinació representen el mateix fitxer, es generarà l'excepció 'SameFileError' Si la destinació és un directori, es generarà l'excepció 'IsADirectoryError' Si la destinació no es pot escriure, es generarà l'excepció 'PermissionError' Python3 # Programa Python per explicar Shuil Mètode .copyfile() # importació del mòdul Shuil importació Shul # Font del camí d'origen = '/home/User/Documents/file.txt' # Destinació del camí de destinació = '/home/Usuari/Documents/file.txt' # Copieu el contingut de # font a destinació /usr/lib/python3.6/shutil.py', línia 104, al fitxer de còpia augmenta SameFileError('{!r} i {!r} són el mateix fitxer'.format(src, dst)) shutil. SameFileError: '/home/User/Documents/file.txt' i '/home/User/Documents/file.txt' són la mateixa ruta de destinació del fitxer: /home/User/Documents/file(còpia). txt Gestió d'errors Aquí estem tractant els errors en utilitzar el mètode shutil.copyfile(). Python3 # Programa de Python per explicar el mètode shutil.copyfile() # importació del mòdul shutil importació shutil # Font del camí d'origen = '/home/User/Documents/file.txt' # Destinació del camí de destinació = '/home/User/Documents ' # Copieu el contingut de # font a destinació, proveu: shutil.copyfile(font, destinació) print('Fitxer copiat correctament.') # Si l'origen i la destinació són iguals excepte shutil.SameFileError: print('Font i destinació representa el mateix fitxer.') # Si la destinació és un directori. excepte IsADirectoryError: print('La destinació és un directori.') # Si hi ha algun problema de permís excepte PermissionError: print('Permís denegat.') # Per a altres errors excepte: print('S'ha produït un error en copiar el fitxer .') Sortida: La destinació és un directori. Hem tractat el mètode per copiar un fitxer a Python mitjançant la funció shutil.copyfile(). És un mètode molt fàcil d'utilitzar que podeu utilitzar per copiar un fitxer. És molt útil quan es vol crear un fitxer duplicat. Llegiu també: Com copiar un fitxer a Python3? mètode shutil.copy() Copia el contingut d'un fitxer a un altre fitxer Copia tots els fitxers d'un directori a un altre amb Python Com crear un fitxer duplicat d'un fitxer existent amb Python?>>>