Python | método shutil.copyfile()

El módulo Shutil en Python proporciona muchas funciones de operaciones de alto nivel en archivos y colecciones de archivos. Viene bajo los módulos de utilidad estándar de Python. Este módulo ayuda a automatizar el proceso de copia y eliminación de archivos y directorios.

¿Qué es el método shutil.copyfile() en Python?

El método shutil.copyfile() en Python se usa para copiar el contenido del archivo de origen al archivo de destino . Los metadatos del archivo no se copian. El origen y el destino deben representar un archivo y el destino debe ser escribible. Si el destino ya existe, se reemplazará con el archivo de origen ; de lo contrario, se creará un nuevo archivo. 
Si el origen y el destino representan el mismo archivo, se generará la excepción  SameFileError .

Sintaxis del método shutil.copyfile() en Python

Sintaxis: shutil.copyfile(origen, destino, *, follow_symlinks = True)

Parámetro: 

  • fuente : una string que representa la ruta del archivo fuente. 
  • destino : una string que representa la ruta del archivo de destino. 
  • follow_symlinks (opcional): el valor predeterminado de este parámetro es True. Si False y la fuente representa un enlace simbólico, se creará un nuevo enlace simbólico en lugar de copiar el archivo.

Nota: El ‘*’ en la lista de parámetros indica que todos los siguientes parámetros (aquí, en nuestro caso, ‘follow_symlinks’) son parámetros de solo palabras clave y se pueden proporcionar usando su nombre, no como parámetro posicional.

Tipo de devolución: este método devuelve una string que representa la ruta del archivo recién creado.

Ejemplo 1: uso del método shutil.copyfile() para copiar un archivo del origen al destino 

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)

Producción:

 Before copying file:
['hrithik.png', 'test.py', 'sample.txt', 'file.text', 'copy.cpp']
After copying file:
['hrithik.png', 'test.py', 'sample.txt', 'file.text', 'file(copy).txt', 'copy.cpp']
Destination path: /home/User/Documents/file(copy).txt

Ejemplo 2: Posibles errores al usar el método shutil.copyfile()

Si el origen y el destino representan el mismo archivo, se generará la excepción ‘SameFileError’ Si el destino es un directorio, se generará la excepción ‘IsADirectoryError’ Si el destino no se puede escribir, se generará la excepción ‘PermissionError’

Python3

# Python program to explain shutil.copyfile() method
 
# importing shutil module
import shutil
 
# Source path
source = "/home/User/Documents/file.txt"
 
# Destination path
destination = "/home/User/Documents/file.txt"
 
# Copy the content of
# source to destination
shutil.copyfile(source, destination)

Producción:

Traceback (most recent call last):
    File "copy.py", line 31, in
        shutil.copyfile(source, destination)
    File "/usr/lib/python3.6/shutil.py", line 104, in copyfile
        raise SameFileError("{!r} and {!r} are the same file".format(src, dst))
shutil.SameFileError: '/home/User/Documents/file.txt' and '/home/User/Documents/file.txt'
are the same file

Ruta de destino: /home/User/Documents/file(copy).txt

Ejemplo 3: manejo de errores al usar el método shutil.copyfile() 

Python3

# Python program to explain shutil.copyfile() method
 
# importing shutil module
import shutil
 
# Source path
source = "/home/User/Documents/file.txt"
 
# Destination path
destination = "/home/User/Documents"
 
# Copy the content of
# source to destination
 
try:
    shutil.copyfile(source, destination)
    print("File copied successfully.")
 
# If source and destination are same
except shutil.SameFileError:
    print("Source and destination represents the same file.")
 
# If destination is a directory.
except IsADirectoryError:
    print("Destination is a directory.")
 
# If there is any permission issue
except PermissionError:
    print("Permission denied.")
 
# For other errors
except:
    print("Error occurred while copying file.")

Producción:

Destination is a directory.

Publicación traducida automáticamente

Artículo escrito por ihritik y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *