Ejemplo-1: Comprimir un solo archivo
Crea un nuevo archivo llamado 'zipcode1.py ' y agregue el siguiente código. archivo zip se importa el módulo para comprimir el archivo. temperatura.Código Postal se asigna como nombre de archivo zip con modo de escritura y, a continuación, el nombre de archivo original, temperatura.TXT y el tipo de compresión se dan como parámetros en el método de escritura.
importar zipfilezip_file = zipfile.ZipFile ('temp.zip ',' w ')
archivo zip.escribir ('temp.txt ', compress_type = zipfile.ZIP_DEFLATED)
archivo zip.cerca()
Ejecuta el script
$ python3 zipcode1.pyLa talla de temperatura.TXT es 27 bytes y después de la compresión, el tamaño de temperatura.Código Postal es 2 bytes.
Ejemplo-2: Comprimir un directorio en particular
Crea 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, os El módulo de Python se importa con archivo zip módulo para comprimir el directorio. En este guión, mydir el directorio se usa para la compresión.
# importar módulos requeridosimportar sistema operativo
importar zipfile
# Declare la función para devolver todas las rutas de archivo del directorio en particular
def retrieve_file_paths (dirName):
# variable de rutas de archivo de configuración
filePaths = []
# Leer todos los directorios, subdirectorios y listas de archivos
para root, directorios, archivos en el sistema operativo.caminar (dirName):
para el nombre de archivo en archivos:
# Cree la ruta de archivo completa usando el módulo os.
filePath = os.camino.unirse (raíz, nombre de archivo)
filePaths.añadir (ruta de archivo)
# devuelve todos los caminos
return filePaths
# Declara la función principal
def principal ():
# 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 = retrieve_file_paths (nombre_directorio)
# imprimir la lista de todos los archivos a comprimir
print ('Se comprimirá la siguiente lista de archivos:')
para fileName en filePaths:
imprimir (nombreArchivo)
# escribir archivos en un archivo zip
zip_file = zipfile.ZipFile (nombre_directorio + '.zip ',' w ')
con zip_file:
# escribiendo cada archivo uno por uno
para el archivo en filePaths:
archivo zip.escribir (archivo)
imprimir (nombre_directorio + '.El archivo zip se creó correctamente!')
# Llamar a la función principal
if __name__ == "__main__":
principal()
Ejecuta el script
$ python3 zipcode2.pyLa talla de mydir es 21 bytes y después de la compresión, el tamaño de mydir.Código Postal es 2 bytes.
Ejemplo-3: Comprimir un directorio dado por el argumento de la línea de comando
Crea 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 os y archivo zip módulos.
# importar módulos requeridosimportar sistema operativo
importar sys
importar zipfile
# Declare la función para devolver todas las rutas de archivo de un directorio en particular
def retrieve_file_paths (dirName):
# variable de rutas de archivo de configuración
filePaths = []
# Leer todos los directorios, subdirectorios y listas de archivos
para root, directorios, archivos en el sistema operativo.caminar (dirName):
para el nombre de archivo en archivos:
# Cree la ruta de archivo completa usando el módulo os.
filePath = os.camino.unirse (raíz, nombre de archivo)
filePaths.añadir (ruta de archivo)
# devuelve todos los caminos
return filePaths
# Declara la función principal
def principal ():
# Compruebe que se dan dos argumentos en el momento de ejecutar el script
si len (sys.argv) != 2:
print ("Has ingresado el nombre del directorio para comprimir")
sys.salir (1)
# Establecer el nombre del directorio a partir del argumento del comando
dir_name = sys.argv [1]
# Establecer el nombre del archivo zip
zipFileName = dir_name + ".Código Postal"
# Llame a la función para recuperar todos los archivos y carpetas del directorio asignado
filePaths = retrieve_file_paths (nombre_directorio)
# imprime la lista de archivos a comprimir
print ('Se comprimirá la siguiente lista de archivos:')
para fileName en filePaths:
imprimir (nombreArchivo)
# 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)
print (zipFileName + 'archivo se creó correctamente!')
# Llamar a la función principal
if __name__ == "__main__":
principal()
Ejecuta el script
$ python3 zipcode3.pyprueba se da como nombre de directorio en el argumento de la línea de comando. La talla de prueba es 21 bytes y después de la compresión, el tamaño de prueba.Código Postal es 2 bytes.
Espero que este tutorial te ayude a usar Python para comprimir cualquier archivo o directorio.