Saltar al contenido

Python COPY Archivo usando shutil.copy(), shutil.copystat()

diciembre 8, 2019

Métodos de copia de archivos Python

Python proporciona funciones incorporadas para copiar fácilmente archivos utilizando las utilidades Shell del sistema operativo.

El siguiente comando se usa para Copiar Archivo

shutil.copy(src,dst)

El siguiente comando se utiliza para copiar archivos con información de metadatos

shutil.copystat(src,dst)

Estos son los pasos para copiar un archivo en Python

Paso 1) Antes de copiar un archivo, necesitamos obtener la ruta al archivo original en el directorio actual. En el código –

  1. Declarar variable
  2. Aplicación de la función de división a la variable

Código Explicación

  • Primero vamos a comprobar que nuestro archivo “guru99.txt” existe o no. Ya que hemos creado el archivo guru99.txt antes, sabemos que existe, y seguiremos adelante con el código
  • Guardamos la ruta del archivo en la variable ” src ” si su archivo existe
  • Una vez que tengamos la ruta, vamos a separar la ruta y el nombre del archivo
  • Para ello, vamos a utilizar la función split path.split en la variable fuente
  • El código cuando se ejecuta imprime por separado ” nombre de archivo ” y ” ruta de archivo

Paso 2) Usamos Shutil Module para crear una copia del archivo existente. Aquí solíamos crear una copia de nuestro archivo existente “guru99.txt”.

Código Explicación

  • Tome el nombre original del archivo “guru99.txt” y añada las letras.bak al final “guru99.txt.bak”. Este nombre con extensión.bak va a ser nuestra copia duplicada
  • Y luego vamos a usar la función de copia de la utilidad para copiar desde el origen al destino
  • Cuando ejecute el código, verá que se crea un archivo duplicado con extensión.bak a la derecha del panel
  • .

Paso 3) La función Copiar sólo copia el contenido del archivo pero no otra información. Para copiar meta-datos asociados al archivo, permisos de archivo y otra información, debe utilizar la función ” copystat “. Antes de ejecutar este código, tenemos que borrar nuestro archivo de copia “guru99.text.bak”.

Una vez eliminado el archivo y ejecutado el programa, éste creará una copia de su archivo.txt, pero esta vez con toda la información como permiso de archivo, tiempo de modificación e información de metadatos . Puedes ir a tu O.S. Shell para verificar la información.

Aquí está el código

importación de datos
importar shutil
desde la ruta de importación
def main():
# hacer un duplicado de un archivo existente
si path.exists(“guru99.txt”):
# obtener la ruta del archivo en el directorio actual
src = ruta.realpath(“guru99.txt”);
#seperate the path from the filter
cabeza, cola = trayectoria.split(src)
print(“path:” +head)
print(“archivo:” +tail)

#hagamos una copia de seguridad añadiendo “bak” al nombre
dst = src+”.bak”
# nowuse the shell to make a copy of the file
shutil.copy(src, dst)

#copiar sobre los permisos, modificaciones
shutil.copystat(src,dst)

si __nombre__==”__main__”:
main()
>

Paso 4) Puede obtener la información sobre el archivo de texto modificado por última vez

  • Code Line#15- Indica el día, fecha, mes, año y hora en que el archivo.txt (guru99) fue modificado por última vez. Usamos el módulo de ruta para obtener los detalles de la hora de modificación del archivo, y luego vamos a usar la función clases de tiempo c time para convertirla en una hora legible. Así que cuando ejecutamos el código, podemos ver que el archivo guru99.txt fue modificado por última vez el Mon, Jan 8th at 13:35 2018.
  • Code Line#17- Hace lo mismo dando información sobre la modificación de archivos, pero tiene un formato diferente para representarlo. Aquí usamos la función Get Modification Time (path.getmtime(“guru99.txt”)). Ahora en lugar de usar la función c time vamos a usar la función From Time Stamp y vamos a construir un objeto date time time. En la salida, puede ver que el detalle de la hora de modificación del archivo se imprime en un formato diferente 2018-01-08, 13:35:51:334072

Aquí está el código

#
# Archivo de ejemplo para trabajar con el módulo o.s path
importar os
desde la ruta de importación
fecha y hora de importación
de datetime importar fecha, hora, timedelta
tiempo de importación
def main():
    # Obtenga la hora de modificación
    t = time.ctime(path.getmtime("guru99.txt.bak"))
    imprimir(t)
    print(datetime.datetime.datetime.time.fromtimestamp(path.getmtime("guru99.txt.bak"))))
si __nombre__ == "__main__":
    main()

>

Resumen

  • Para crear una copia del archivo existente utilizando el código shutil.copy (src,dst)
  • Para copiar toda la información del archivo original a un archivo duplicado como permiso de archivo, hora de modificación o información de metadatos utilizando el código shutil.copystat(src,dst)