Python Compresión de Archivos
En este tutorial Python 3.x aprenderemos a leer y escribir archivos comprimidos utilizando los algoritmos de compresión: zlib, gzip, bzip2 y lzma, también aprenderemos a comprimir y extraer carpetas en los formatos zip, tar, etc.
Comprimir y extraer carpetas
Usando el modulo shutil podemos comprimir carpetas usando los formatos zip, tar y otros, su uso el fácil, primero para averiguar cuales son los formatos soportados por este modulo usamos el método get_archive_formats().
Para comprimir una carpeta disponemos de make_archive() primero indicamos la carpeta y el nombre del archivo comprimido, luego el formato de archivo, obtenido con el método anterior, finamente indicamos la carpeta que deseamos comprimir.
import shutil shutil.get_archive_formats() shutil.make_archive("c:/developer/temp/file", "zip", "c:/developer/temp/lwjgl") shutil.unpack_archive("c:/developer/temp/file.zip", "c:/developer/temp/file")
Para extraer una carpeta comprimida el proceso es similar, solo que utilizaremos el método unpack_archive() indicando primero el archivo que deseamos extraer y luego la capeta donde deseamos almacenar la extracción.
Leer y escribir archivos comprimidos
Si estamos escribiendo archivos y deseamos que estos se almacenen comprimidos en disco, simplemente seleccionamos el método de compresión y escribimos el archivo como lo haríamos con un archivo normal, el único cambio es que debemos indicar el modulo de compresión que deseamos utilizar.
# gzip compression import gzip with gzip.open('archivo.gz', 'wt') as f: f.write(text) # bz2 compression import bz2 with bz2.open('archivo.bz2', 'wt') as f: f.write(text)
Leer el archivo comprimido también resulta muy similar a como lo hacemos con un archivo normal, al igual que para escribir, debemos indicar el modulo y realizar la operación de lectura.
import gzip with gzip.open('archivo.gz', 'rt') as f: text = f.read()
buen aporte, sencillo, y funcional.
ResponderEliminar