Un archivo comprimido contiene muchos archivos, directorio y subdirectorios. Muchas aplicaciones están disponibles para crear un archivo de compresa de cualquier archivo o directorio grande y recuperar archivos o carpetas extrayendo un archivo comprimido. Cuando queremos transferir cualquier gran o carpeta a través de Internet, es mejor comprimir el contenido antes de transferir. Esto hace que la tarea sea más rápida. Puede usar scripts de Python para comprimir y extraer cualquier archivo o directorio grande.
archivo zip El módulo de Python se usa para hacer la tarea. Cómo puede usar Python3 para comprimir cualquier archivo o directorio se muestra en este tutorial utilizando varios ejemplos.
Ejemplo-1: comprimir un solo archivo
Crear un nuevo archivo llamado 'ZipCode1.py ' y agregue el siguiente código. archivo zip Se importa el módulo para comprimir el archivo. temperatura.cremallera se asigna como nombre de archivo zip con modo de escritura y siguiente, el nombre de archivo original, temperatura.TXT y el tipo de compresa se dan como parámetros en el método de escritura.
importar zipfile
ZIP_FILE = ZIPFILE.Zipfile ('temperatura.Zip ',' W ')
archivo zip.escribir ('temp.txt ', compress_type = zipfile.Zip_deflated)
archivo zip.cerca()
Ejecutar el guión
$ python3 zipcode1.py
La talla de temperatura.TXT es 27 bytes y después de la compresión, el tamaño de temperatura.cremallera es 2 bytes.
Ejemplo-2: comprimir un directorio en particular
Crear un nuevo archivo llamado 'zipcode2.py ' y agregue el siguiente código. Un directorio puede contener muchos archivos, carpetas y subcarpetas. Para leer el contenido del directorio, sistema operativo El módulo de Python se importa con archivo zip módulo para comprimir el directorio. En este guión, mydir El directorio se utiliza para la compresión.
# Importar módulos requeridos
importar sistema operativo
importar zipfile
# Declarar la función para devolver todas las rutas de archivo del directorio particular
Def Remieve_File_Paths (DirName):
# Configuración de rutas de archivo variable
filepaths = []
# Lea todos los directorio, subdirectorios y listas de archivos
para root, directorios, archivos en el sistema operativo.Walk (Dirname):
para el nombre de archivo en los archivos:
# Cree el FilePath completo utilizando el módulo OS.
filepath = os.camino.unirse (root, nombre de archivo)
filepaths.Añadir (FilePath)
# Devuelve todos los caminos
Retroceder Filepaths
# Declarar la función principal
Def Main ()::
# Asignar el nombre del directorio a zip
dir_name = 'mydir'
# Llame a la función para recuperar todos los archivos y carpetas del directorio asignado
filePaths = Remieve_File_Paths (dir_name)
# Impresión de la lista de todos los archivos que se van a crecer
Imprimir ('La siguiente lista de archivos se encenderá:')
Para el nombre de archivo en Filepaths:
Imprimir (nombre de archivo)
# escribir archivos a un archivo zip
ZIP_FILE = ZIPFILE.ZipFile (dir_name+'.Zip ',' W ')
con zip_file:
# escribir cada archivo uno por uno
Para el archivo en filepaths:
archivo zip.escribir (archivo)
imprimir (dir_name+'.El archivo zip se crea correctamente!')
# Llamar a la función principal
Si __name__ == "__main__":
principal()
Ejecutar el guión
$ python3 zipcode2.py
La talla de mydir es 21 bytes y después de la compresión, el tamaño de mydir.cremallera es 2 bytes.
Ejemplo-3: comprimir un directorio dado por el argumento de la línea de comandos
Crear un nuevo archivo llamado 'zipcode3.py ' y agregue el siguiente código. Para leer el valor de la línea de comando, otro módulo de python sys se importa con sistema operativo y archivo zip módulos.
# Importar módulos requeridos
importar sistema operativo
Sys de importación
importar zipfile
# Declarar la función para devolver todas las rutas de archivo de un directorio en particular
Def Remieve_File_Paths (DirName):
# Configuración de rutas de archivo variable
filepaths = []
# Lea todos los directorio, subdirectorios y listas de archivos
para root, directorios, archivos en el sistema operativo.Walk (Dirname):
para el nombre de archivo en los archivos:
# Cree el FilePath completo utilizando el módulo OS.
filepath = os.camino.unirse (root, nombre de archivo)
filepaths.Añadir (FilePath)
# Devuelve todos los caminos
Retroceder Filepaths
# Declarar la función principal
Def Main ()::
# Verifique que se dan dos argumentos al momento de ejecutar el script
Si len (sys.argv) != 2:
Imprima ("Has ingresado el nombre del directorio a zip")
sys.Salir (1)
# Establecer el nombre del directorio del argumento del comando
dir_name = sys.Argv [1]
# Establecer el nombre del archivo zip
ZipFileName = DIR_NAME + ".cremallera"
# Llame a la función para recuperar todos los archivos y carpetas del directorio asignado
filePaths = Remieve_File_Paths (dir_name)
# Imprima la lista de archivos a conocer
Imprimir ('La siguiente lista de archivos se encenderá:')
Para el nombre de archivo en Filepaths:
Imprimir (nombre de archivo)
# Escribir archivos y carpetas en un archivo zip
ZIP_FILE = ZIPFILE.ZipFile (ZipFileName, 'W')
con zip_file:
# Escribe cada archivo por separado
Para el archivo en filepaths:
archivo zip.escribir (archivo)
El archivo print (zipFileName+'se crea correctamente!')
# Llamar a la función principal
Si __name__ == "__main__":
principal()
Ejecutar el guión
$ python3 zipcode3.py
prueba se da como nombre de directorio en el argumento de la línea de comandos. La talla de prueba es 21 bytes y después de la compresión, el tamaño de prueba.cremallera es 2 bytes.
Espero que este tutorial lo ayude a usar Python para comprimir cualquier archivo o directorio.