segunda-feira, novembro 06, 2006

Comprimir/Descomprimir ficheiros .gz em Python

GNU Zip (ou simplesmente gzip) é um formato de compressão muito usado no mundo Unix/Linux.
Como ultimamente tenho andado a fazer uns trabalhos em Python, e tive que lidar com ficheiros gzip, reparei que à documentação de python faltava um exemplo do uso, da API disponibilizada por esta linguagem, para a manipulação de esse tipo de ficheiros.

Para descomprimir:
import gzip
fileObj = gzip.GzipFile("/home/dcruz/dump.txt.gz", 'rb');
fileContent = fileObj.read()
fileObj.close()
Neste exemplo, a variável fileContent fica com o conteúdo do ficheiro em memória, por isso, se quiserem guardar a versão descomprimida num ficheiro à parte só terá que fazer:
fileObj = open("/home/dcruz/dump.txt", 'wb')
fileObj.write(fileContent)
fileObj.close()

Para comprimir:
import gzip
fileObj = gzip.GzipFile("/Users/mary/hamlet.txt.gz", 'wb');
fileObj.write(fileContent)
fileObj.close()

A API de Python suporta igualmente a manipulação dos formatos Zlib, Bzip2, Zip, Tar.

3 comentários:

TS disse...

Ninguem usa Linux paaaaaaaaaaa so Windows. WIndows POWA!!! :P

David Cruz disse...

Aí é que está a piada de Python. É uma linguagem interpretada que funciona em diversas plataformas. Linux é uma delas. Windows é outra.

Por isso se instalares um interpretador de python em windows, o código terá o mesmo efeito, se terás que ter o cuidado de passar as directorias da forma correcta.
Abraços.

TS disse...

ahhhhhhhhhhhhhh entao até é uma cena fixe :P. Thanks