Copiar archivo en Python:método shutil.copy(), shutil.copystat()
Métodos de copia de archivo de Python
Python proporciona funciones integradas para copiar archivos fácilmente usando las utilidades Shell del sistema operativo.
El siguiente comando se usa para copiar archivo
shutil.copy(src,dst)
El siguiente comando se usa para copiar archivos con información de metadatos
shutil.copystat(src,dst)
Cómo copiar un archivo en Python
Estos son los pasos para copiar un archivo en Python usando el método shutil copy():
Paso 1) Capture la ruta original en el directorio actual
Antes de copiar un archivo, necesitamos obtener la ruta al archivo original en el directorio actual. En el código –
- Declarando variable
- Aplicando función de división en variable
Explicación del código
- Primero vamos a verificar que nuestro archivo "guru99.txt" exista o no. Dado que hemos creado el archivo guru99.txt anteriormente, sabemos que existe y continuaremos con el código
- Almacenamos la ruta del archivo en la variable “src ” si su archivo existe
- Una vez que obtengamos la ruta, vamos a separar la ruta y el nombre del archivo
- Para eso, vamos a usar la división
path.split
función en la variable fuente - El código cuando se ejecuta imprime "nombre de archivo ” y “ruta del archivo ” por separado
Paso 2) Cree una copia de nuestro archivo existente usando el módulo Shutil
Usamos el Módulo Shutil para crear una copia del archivo existente. Aquí solíamos crear una copia de nuestro archivo existente "guru99.txt".
Explicación del código
- Tome el nombre de archivo original "guru99.txt" y agregue las letras .bak al final "guru99.txt.bak". Este nombre con la extensión .bak será nuestra copia duplicada
- Y luego usaremos 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 la extensión .bak en el lado derecho del panel
Paso 3) Copie los metadatos asociados con el archivo, el permiso del archivo y otra información
La función de copia solo copia el contenido del archivo, pero no otra información. Para copiar metadatos asociado con el archivo, el permiso del archivo y otra información que tiene que usar "copystat " función. Antes de ejecutar este código, debemos eliminar nuestro archivo de copia "guru99.text.bak".
Una vez que elimine el archivo y ejecute el programa, se 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 . Puede ir al shell de su sistema operativo para verificar la información.
Aquí está el código
import os import shutil from os import path def main(): # make a duplicate of an existing file if path.exists("guru99.txt"): # get the path to the file in the current directory src = path.realpath("guru99.txt"); #seperate the path from the filter head, tail = path.split(src) print("path:" +head) print("file:" +tail) #let's make a backup copy by appending "bak" to the name dst = src+".bak" # nowuse the shell to make a copy of the file shutil.copy(src, dst) #copy over the permissions,modification shutil.copystat(src,dst) if __name__=="__main__": main()
Paso 4) Obtener la información
Puede obtener la información sobre el archivo de texto modificado por última vez
- Línea de código n.º 15:indica el día, la fecha, el mes, el año y la hora en que se modificó por última vez el archivo .txt (guru99). Usamos el módulo de ruta para obtener los detalles de tiempo de modificación del archivo, y luego vamos a usar la función de tiempo de clases de tiempo c para convertir eso en un tiempo legible. Entonces, cuando ejecutamos el código, podemos ver que el archivo guru99.txt se modificó por última vez el lunes, 8 de enero th a las 13:35 2018.
- Línea de código n.° 17:hace lo mismo al brindar información sobre la modificación del archivo, pero tiene un formato diferente para representarla. Aquí usamos la función Obtener tiempo de modificación (ruta.getmtime(“guru99.txt”)). Ahora, en lugar de usar la función de tiempo c, vamos a usar la función De marca de tiempo y va a construir un objeto de fecha y hora. En la salida, puede ver que los detalles de la hora de modificación del archivo se imprimen en un formato diferente 2018-01-08, 13:35:51.334072
Aquí está el código
# # Example file for working with o.s path module import os from os import path import datetime from datetime import date, time, timedelta import time def main(): # Get the modification time t = time.ctime(path.getmtime("guru99.txt.bak")) print(t) print(datetime.datetime.fromtimestamp(path.getmtime("guru99.txt.bak"))) if __name__ == "__main__": main()
Resumen
- Para crear una copia del archivo existente, use el código shutil.copy (src,dst)
- Para copiar toda la información del archivo original a un archivo duplicado como permiso de archivo, tiempo de modificación o información de metadatos usando el código shutil.copystat(src,dst)
python
- Tipos de datos de Python
- Operadores de Python
- Declaración de paso de Python
- Argumentos de la función de Python
- Diccionario de Python
- E/S de archivo de Python
- Longitud de cadena de Python | método len() Ejemplo
- Método Python String find() con ejemplos
- Python comprueba si el archivo existe | Cómo comprobar si existe un directorio en Python
- Python JSON:codificar (volcados), decodificar (cargas) y leer archivos JSON
- Python - E/S de archivos