Python | método shutil.copy()

Python3

# Python program to explain shutil.copy() 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
 
try:
    shutil.copy(source, destination)
    print("File copied successfully.")
 
# If source and destination are same
except shutil.SameFileError:
    print("Source and destination represents the same file.")
 
# If there is any permission issue
except PermissionError:
    print("Permission denied.")
 
# For other errors
except:
    print("Error occurred while copying file.")

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.
El método shutil.copy() en Python se usa para copiar el contenido del archivo de origen al archivo o directorio de destino . También conserva el modo de permiso del archivo, pero no se conservan otros metadatos del archivo, como los tiempos de creación y modificación del archivo. 
El origen debe representar un archivo, pero el destino puede ser un archivo o un directorio. Si el destino es un directorio, el archivo se copiará en el destino utilizando el nombre de archivo base del origen. También,el destino debe ser escribible. Si el destino es un archivo y ya existe, se reemplazará con el archivo de origen ; de lo contrario, se creará un nuevo archivo.
 

Sintaxis: shutil.copy(source, destination, *, follow_symlinks = True)
Parámetro: 
source : Una string que representa la ruta del archivo fuente. 
destino : una string que representa la ruta del archivo o directorio de destino. 
follow_symlinks (opcional): el valor predeterminado de este parámetro es True. Si es Falso y el origen representa un enlace simbólico, el destino se creará como un enlace simbólico.
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. 
 

Código n.º 1: Uso del método shutil.copy() para copiar el archivo del origen al destino 
 

Python3

# Python program to explain shutil.copy() 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"
 
# Print file permission
# of the source
perm = os.stat(source).st_mode
print("File Permission mode:", perm, "\n")
 
# Destination path
destination = "/home/User/Documents/file(copy).txt"
 
# Copy the content of
# source to destination
dest = shutil.copy(source, destination)
 
# List files and directories
# in "/home / User / Documents"
print("After copying file:")
print(os.listdir(path))
 
# Print file permission
# of the destination
perm = os.stat(destination).st_mode
print("File Permission mode:", perm)
 
# 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']
File permission mode: 33188

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

 

Código #2: Si el destino es un directorio 
 

Python3

# Python program to explain shutil.copy() method
   
# importing os module
import os
 
# importing shutil module
import shutil
 
 
# Source path
source = "/home/User/Documents/file.txt"
 
# Destination path
destination = "/home/User/Desktop/"
 
# Copy the content of
# source to destination
dest = shutil.copy(source, destination)
 
# List files and directories
# in "/home / User / Desktop"
print("After copying file:")
print(os.listdir(destination))
 
# Print path of newly
# created file
print("Destination path:", dest)
Producción: 

After copying file:
['input.txt', 'GeeksForGeeks', 'output.txt', 'file.txt', 'web.py', 'tree.cpp']
Destination path: /home/User/Desktop/file.txt

 

Código #3: Posibles errores al usar el método shutil.copy() 
 

Python3

# Python program to explain shutil.copy() method
   
# importing shutil module
import shutil
 
 
# If the source and destination
# represents the same file
# 'SameFileError' exception
# will be raised
 
# If the destination is
# not writable
# 'PermissionError' exception
# will be raised
 
 
# Source path
source = "/home/User/Documents/file.txt"
 
# Destination path
destination = "/home/User/Documents/file.txt"
 
# Copy the content of
# source to destination
shutil.copy(source, destination)
Producción: 

Traceback (most recent call last):
  File "try.py", line 26, in 
    dest = shutil.copy(source, destination)
  File "/usr/lib/python3.6/shutil.py", line 241, in copy
    copyfile(src, dst, follow_symlinks=follow_symlinks)
  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/Desktop/file.txt' and  '/home/User/Desktop/file.txt'
are the same file

 

Código #4: Manejo de errores al usar el método shutil.copy() 
 

Python3

# Python program to explain shutil.copy() 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
 
try:
    shutil.copy(source, destination)
    print("File copied successfully.")
 
# If source and destination are same
except shutil.SameFileError:
    print("Source and destination represents the same file.")
 
# If there is any permission issue
except PermissionError:
    print("Permission denied.")
 
# For other errors
except:
    print("Error occurred while copying file.")
Producción: 

Source and destination represents the same file.

 

Referencia: https://docs.python.org/3/library/shutil.html
 

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 *