La compresión de archivos es una tarea común en la programación, especialmente cuando trabajas con grandes volúmenes de datos o necesitas reducir el tamaño de archivos para su almacenamiento o transferencia. Python proporciona la biblioteca zipfile, que te permite crear y manipular archivos ZIP de forma sencilla.

 

Paso 1: Importar la biblioteca zipfile
Primero, asegúrate de tener instalada la biblioteca zipfile. Puedes instalarla utilizando pip si aún no la tienes:

pip install zipfile

 

Una vez instalada, importa la biblioteca en tu script de Python:

import zipfile

 

Paso 2: Comprimir archivos en un archivo ZIP
Para comprimir archivos en un archivo ZIP, puedes utilizar la clase ZipFile de la biblioteca zipfile. Aquí tienes un ejemplo de cómo comprimir un archivo único:

def comprimir_archivo(archivo_a_comprimir, archivo_zip):
    with zipfile.ZipFile(archivo_zip, 'w') as zipf:
        zipf.write(archivo_a_comprimir, arcname=archivo_a_comprimir)
    print(f'Archivo "{archivo_a_comprimir}" comprimido como "{archivo_zip}"')

# Uso:
comprimir_archivo('archivo.txt', 'archivo.zip')

En este ejemplo, archivo_a_comprimir es el nombre del archivo que deseas comprimir y archivo_zip es el nombre que deseas darle al archivo ZIP resultante.

 

Paso 3: Comprimir múltiples archivos en un archivo ZIP
Si deseas comprimir varios archivos en un solo archivo ZIP, simplemente pasa una lista de nombres de archivos al método write de ZipFile:
 

def comprimir_varios_archivos(archivos_a_comprimir, archivo_zip):
    with zipfile.ZipFile(archivo_zip, 'w') as zipf:
        for archivo in archivos_a_comprimir:
            zipf.write(archivo, arcname=archivo)
    print(f'{len(archivos_a_comprimir)} archivos comprimidos como "{archivo_zip}"')

# Uso:
archivos_a_comprimir = ['archivo1.txt', 'archivo2.txt', 'archivo3.txt']
comprimir_varios_archivos(archivos_a_comprimir, 'archivos.zip')

 

Paso 4: Comprimir un directorio completo
También puedes comprimir un directorio completo utilizando la función write y especificando el directorio como primer argumento:

def comprimir_directorio(directorio, archivo_zip):
    with zipfile.ZipFile(archivo_zip, 'w') as zipf:
        for carpeta_raiz, subcarpetas, archivos in os.walk(directorio):
            for archivo in archivos:
                ruta_completa = os.path.join(carpeta_raiz, archivo)
                rel_path = os.path.relpath(ruta_completa, directorio)
                zipf.write(ruta_completa, arcname=rel_path)
    print(f'Directorio "{directorio}" comprimido como "{archivo_zip}"')

# Uso:
import os
comprimir_directorio('mi_directorio', 'mi_directorio.zip')

 

Ahora ya sabes cómo comprimir archivos en Python utilizando la biblioteca zipfile. Puedes utilizar estas técnicas para comprimir archivos individuales, múltiples archivos o incluso directorios completos. La compresión de archivos es útil para reducir el tamaño de los datos y facilitar su almacenamiento o transferencia.




Deja un Comentario

Tu dirección de correo no sera publicado. Los campos obligatorios están marcados con *

Nombre *
Correo *
Web