Pitón

Use python para comprimir un archivo y un directorio

Use python para comprimir un archivo y un directorio
Un archivo comprimido contiene muchos archivos, directorios y subdirectorios. Hay muchas aplicaciones disponibles para crear un archivo comprimido de cualquier archivo o directorio grande y recuperar archivos o carpetas extrayendo un archivo comprimido. Cuando queremos transferir cualquier carpeta o carpeta grande 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. En este tutorial se muestra cómo puede usar python3 para comprimir cualquier archivo o directorio usando varios ejemplos.

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 zipfile
zip_file = zipfile.ZipFile ('temp.zip ',' w ')
archivo zip.escribir ('temp.txt ', compress_type = zipfile.ZIP_DEFLATED)
archivo zip.cerca()

Ejecuta el script

$ python3 zipcode1.py

La 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 requeridos
 
importar 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.py

La 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 requeridos
 
importar 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.py

prueba 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.

Los 10 mejores juegos para jugar en Ubuntu
La plataforma Windows ha sido una de las plataformas dominantes para juegos debido al gran porcentaje de juegos que se están desarrollando hoy para ad...
5 mejores juegos de arcade para Linux
Hoy en día, las computadoras son máquinas serias que se usan para jugar. Si no puede obtener la nueva puntuación más alta, sabrá a qué me refiero. En ...
Batalla por Wesnoth 1.13.6 Desarrollo liberado
Batalla por Wesnoth 1.13.6 lanzado el mes pasado, es el sexto lanzamiento de desarrollo en el 1.13.x y ofrece una serie de mejoras, sobre todo en la i...