Python saltil
El módulo Python Shutil permite a un desarrollador usar objetos de archivo muy fácilmente y sin entrar en detalles más profundos sobre cómo funcionan las cosas debajo de las cubiertas. Este módulo básicamente abstrae la semántica de bajo nivel de la creación y administración de objetos de archivo, limpiarlos una vez que el uso esté completo y nos permite centrarnos en la lógica comercial de la aplicación. Veremos muchos ejemplos aquí, comencemos.
Ejemplos con el módulo de cierre de Python
Estudiaremos varios ejemplos que demuestran el uso de Python callar módulo aquí.
Copiar un archivo
Con el copiar archivo() función en callar Módulo, podemos hacer una copia exacta de un archivo existente en cualquier lugar de la máquina. Veamos un programa de muestra para demostrar cómo se puede hacer esto:
importar sistema operativo
callar de importación
file_directory = './Archivos '
imprimir ('archivos antes:', OS.listDir (file_directory))
callar.copiar archivo('./Archivos/hola.TXT', './Archivos/hello_again.TXT')
imprimir ('archivos después:', OS.listDir (file_directory))
Acabamos de copiar un archivo que existe en el directorio dado para clonar el archivo en el mismo directorio. Esto es lo que recuperamos con este comando:
Copia del archivo de callar de Python
Lo bueno de esta función es que la función mencionada también toma como entrada el nombre al nuevo archivo que se creará.
Copiar archivos a otro directorio
Es posible copiar un archivo a un nuevo directorio con shutil's Copiar() función. Veamoslo en acción:
importar sistema operativo
callar de importación
Imprimir ('Hacer un nuevo directorio.')
sistema operativo.Mkdir ('Linuxhint')
imprimir ('archivos antes:', OS.ListDir ('Linuxhint'))
callar.Copiar('./Archivos/hola.txt ',' linuxhint ')
imprimir ('archivos después:', OS.ListDir ('Linuxhint'))
Veamos la salida para este comando:
Copiar archivo a un nuevo directorio
Tenga en cuenta que cuando se copia un archivo usando el Copiar() función, Los permisos para el archivo también están clonados Pero los metadatos del archivo no se copian. Esto significa que cuando verifica cuándo se hizo este archivo, mostrará el tiempo fresco cuando ejecute este script.
Copiar archivo con metadatos
En la última sección, vimos cómo podríamos hacer una copia del archivo. ¿Qué pasa si desea hacer un clon exacto de un archivo que implique clonar sus metadatos, como cuándo se hizo el archivo, etc. Esto también es posible pero esto Puede que no funcione en un sistema basado en POSIX. Veamos un ejemplo sobre cómo se puede hacer esto:
importar sistema operativo
callar de importación
tiempo de importación
new_directory = 'Linuxhint'
src_file = './Archivos/hola.TXT'
dest_file = './Linuxhint/Hola.TXT'
Def file_metadata (archivo):
stat_info = OS.STAT (archivo)
imprimir ('Modo:', OCT (stat_info.st_mode))
imprimir ('creado:', tiempo.ctime (stat_info.ST_CTIME))
Imprimir ('Accedido:', Tiempo.ctime (stat_info.st_atime))
imprimir ('modificado:', tiempo.ctime (stat_info.st_mtime))
sistema operativo.mkdir (new_directory)
imprimir ('metadatos para el archivo fuente:')
file_metadata (src_file)
callar.Copy2 (src_file, new_directory)
imprimir ('metadatos para el archivo de destino:')
file_metadata (dest_file)
Esto es lo que recuperamos con este comando cuando ejecutamos esto en un sistema basado en POSIX (los metadatos no están clonados por completo):
Copiar archivo con metadatos
En los sistemas no basados en Posix, incluso el tiempo creado y el que se accede habría coincidido exactamente.
Directorio completo de clonación
En la última sección, vimos cómo podríamos hacer una copia del archivo. Aquí, veremos cómo podemos clonar un directorio completo recursivamente. Esto significa que si existe otro directorio en el directorio que queremos clonar, también se clonarán.
Importar PPRint
callar de importación
importar sistema operativo
src_directory = './Archivos '
des_directory = './Linuxhint '
callar.Copytree (src_directory, dest_directory)
Imprimir ('Contenido de la fuente:')
piprint.PPRINT (OS.ListDir (src_directory))
Imprimir ('Contenido del destino:')
piprint.PPRINT (OS.listDir (dest_directory))
Veamos la salida para este comando:
Duplicando un directorio
Tenga en cuenta que el directorio que pasamos a la función copytree () como El directorio de destino no debe existir antes de ejecutar este programa.
Eliminar un directorio
Eliminar un directorio es muy simple con el rmtree () función en el módulo. Veamos esta función en acción aquí:
Importar PPRint
callar de importación
importar sistema operativo
delete_directory = 'Linuxhint'
current_directory = '.'
Imprimir ('Contenido antes de la eliminación:')
piprint.PPRINT (OS.listDir (current_directory))
callar.rmtree (delete_directory)
Imprimir ('Contenido después de la eliminación:')
piprint.PPRINT (OS.listDir (current_directory))
Después de ejecutar el script, Linuxhint El directorio se elimina junto con el contenido. Esto es lo que recuperamos con este comando:
Eliminar directorio
Encontrar archivos
Si desea encontrar un archivo que esté presente en la variable de ruta en su máquina, podemos usar el cual() función para encontrar ese archivo por nombre. Veamos un ejemplo de demostración para esta función:
callar de importación
imprimir (callar.que ('bsondump'))
imprimir (callar.que ('sin fila')))
Esto es lo que recuperamos con este comando:
Buscar archivo en ruta
Monitoreo del espacio del sistema de archivos
Con el módulo de cierre, tenemos una función disk_usage () a través de la cual también podemos obtener información de espacio en disco sobre nuestra máquina. Veamos un ejemplo que muestra estos datos de manera legible por humanos:
callar de importación
Total_b, used_b, free_b = shutil.uso del disco('.')
gb = 10 ** 9 # gb == gigabyte
print ('Total: : 6.2f GB '.formato (total_b / gb))
print ('usado: : 6.2f GB '.formato (usado_b / gb))
imprimir ('gratis: : 6.2f GB '.formato (libre_b / gb))
Esto es lo que recuperamos con este comando:
Encontrar espacio del sistema de archivos
Directorios de archivo
Como último ejemplo, veremos cómo podemos archivar un módulo de cierre de directorio make_archive () función. Veamos el programa de muestra:
callar de importación
importar sistema operativo
Archive_Directory = \
sistema operativo.camino.Expanduser (OS.camino.unirse ('Destino-directorio-patas', 'Linuxhint'))
root_dir = OS.camino.Expanduser (OS.camino.Únete a ('~', '.ssh '))
callar.make_archive (archive_directory, 'gztar', root_dir)
Esto es lo que recuperamos con este comando:
Directorio de archivo
Si desarchive el archivo de alquitrán y se mira, contendrá todo el .ssh archivos de directorio en él.
Conclusión
En esta lección, observamos cómo podemos administrar objetos de archivo con operaciones de archivos de alto nivel fácilmente con callar Módulo en Python. Operaciones como copiar el contenido de un archivo, crear una nueva copia de un archivo, etc. Parecía fácil con este módulo.