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.copystat() en Python se usa para copiar los bits de permiso , la hora del último acceso, la hora de la última modificación y el valor de las banderas de la ruta de origen dada a la ruta de destino dada.
El método shutil.copystat() no afecta el contenido del archivo ni la información del propietario y del grupo.
En Linux, este método también intenta copiar algunos atributos extendidos además de los bits de permiso .hora del último acceso, hora de la última modificación y valor de las banderas .
Sintaxis: shutil.copystat(fuente, 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 es Falso y tanto el origen como el destino se refieren a un enlace simbólico, entonces el método shutil.copystat() operará en los enlaces simbólicos mismos en lugar de los archivos a los que se refieren los enlaces simbólicos.
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 no devuelve ningún valor.
Código: uso del método shutil.copystat() para copiar metadatos de la ruta de origen a la de destino
Python3
# Python program to explain shutil.copystat() method # importing os module import os # importing shutil module import shutil # importing time module import time # Source file path src = "/home/ihritik/Desktop/sam3.pl" # Destination file path dest = "/home/ihritik/Desktop/encry.py" # Print the permission bits # last access time, last modification time # and flags value of source and destination files print("Before using shutil.copystat() method:") print("Source metadata:") print("Permission bits:", oct(os.stat(src).st_mode)[-3:]) print("Last access time:", time.ctime(os.stat(src).st_atime)) print("Last modification time:", time.ctime(os.stat(src).st_mtime)) # print("User defined Flags:", os.stat(src).st_flags) # Note: st_flags attribute is platform dependent # and is subject to availability print("\nDestination metadata:") print("Permission bits:", oct(os.stat(dest).st_mode)[-3:]) print("Last access time:", time.ctime(os.stat(dest).st_atime)) print("Last modification time:", time.ctime(os.stat(dest).st_mtime)) # print("User defined Flags:", os.stat(dest).st_flags) # Copy the permission bits # last access time, last modification time # and flags value from source to destination shutil.copystat(src, dest) # Print the permission bits # last access time, last modification time # and flags value of destination print("\nAfter using shutil.copystat() method:") print("Destination metadata:") print("Permission bits:", oct(os.stat(dest).st_mode)[-3:]) print("Last access time:", time.ctime(os.stat(dest).st_atime)) print("Last modification time:", time.ctime(os.stat(dest).st_mtime)) # print("User defined Flags:", os.stat(dest).st_flags) print("Permission bits, last access time and last modification time\n\ copied from source to destination successfully")
Before using shutil.copystat() method: Source metadata: Permission bits: 664 Last access time: Mon Jun 10 00:37:16 2019 Last modification time: Thu Dec 27 00:15:23 2018 Destination metadata: Permission bits: 777 Last access time: Fri Apr 12 01:13:25 2019 Last modification time: Thu Apr 11 02:03:45 2019 After using shutil.copystat() method: Destination metadata: Permission bits: 664 Last access time: Mon Jun 10 00:37:16 2019 Last modification time: Thu Dec 27 00:15:23 2018 Permission bits, last access time and last modification time copied from source to destination successfully
Referencia: https://docs.python.org/3/library/shutil.html