Métodos de copia de archivos de Python
Python proporciona funciones integradas para copiar archivos fácilmente utilizando 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)
Estos son los pasos para copiar un archivo en Python
Paso 1) Antes, copiamos un archivo, necesitamos obtener la ruta al archivo original en el directorio actual. En el código -
- Declaración de variable
- Aplicar la función de división en la variable
Explicación del código
- Primero vamos a comprobar que nuestro archivo "guru99.txt" existe o no. Como 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, usaremos la
path.split
función de división en la variable fuente - El código cuando se ejecuta imprime el " nombre del archivo " y la " ruta del archivo " por separado
Paso 2) 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 del 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) La función de copia solo copia el contenido del archivo pero no otra información. Para copiar los metadatos asociados con el archivo, el permiso del archivo y otra información, debe utilizar la función " copystat ". Antes de ejecutar este código, tenemos que 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 el permiso del archivo, la hora de modificación y la información de metadatos . Puede ir al shell de su sistema operativo para verificar la información.
Aqui esta el codigo
import osimport shutilfrom os import pathdef main():# make a duplicate of an existing fileif path.exists("guru99.txt"):# get the path to the file in the current directorysrc = path.realpath("guru99.txt");#seperate the path from the filterhead, tail = path.split(src)print("path: +head)print("file: +tail)#let's make a backup copy by appending "bak" to the namedst = src+".bak"# nowuse the shell to make a copy of the fileshutil.copy(src, dst)#copy over the permissions,modificationshutil.copystat(src,dst)if __name__=="__main__":main()
Paso 4) Puede obtener la información sobre el archivo de texto modificado por última vez
- Línea de código # 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 la hora de modificación del archivo, y luego usaremos la función de tiempo de las clases de tiempo c para convertir eso en un tiempo legible. Así que cuando corremos el código, podemos ver el guru99.txt archivo fue modificado por última vez en Lun 8 Ene º a las 13:35 2018.
- Línea de código # 17: hace lo mismo dando información sobre la modificación del archivo, pero tiene un formato diferente para representarlo. Aquí usamos la función Obtener tiempo de modificación (path.getmtime ("guru99.txt")). Ahora, en lugar de usar la función c time, usaremos la función From Time Stamp y construiremos un objeto de fecha y hora. 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
Aqui esta el codigo
## Example file for working with o.s path moduleimport osfrom os import pathimport datetimefrom datetime import date, time, timedeltaimport timedef main():# Get the modification timet = 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 usando el código shutil.copy (src, dst)
- Para copiar toda la información del archivo original en un archivo duplicado, como el permiso del archivo, la hora de modificación o la información de metadatos, use el código shutil.copystat (src, dst)