Como compactar e descompactar dados em Python

Hoje veremos um tutorial que tratará do compressão e descompressão de dados em Python, uma tarefa muito fácil, pois dispomos de alguns módulos que nos permitirão realizar este trabalho de compressão de dados. As bibliotecas são: zlib, gzip, bz2, arquivo zip Y tarfile.

Ao longo do tutorial veremos exemplos de algumas das bibliotecas para aprender como usá-lo, é a melhor maneira de entender como funciona.

ObservaçãoEle fará uso da versão 3 do Python.

Vamos começar com os exemplos. Todos eles serão simples e fáceis de entender.

1. Módulo Zlib


Veremos alguns exemplos com esta biblioteca, ambos serão fáceis como dissemos antes.

Exemplo 1
Temos o seguinte código, como você pode ver é breve:

 import zlib as zl line = b "Este é apenas um teste para o tutorial a ser publicado na Solvetic" line_compress = zl.compress (line) print ("Tamanho não compactado% d"% len (linha)) print ("Tamanho compactado% d "% len (line_compress))
Comprimimos a linha original e mostramos o que uma e a outra ocupam, obtendo a seguinte saída:

Agora veremos como descompactar no exemplo a seguir.

Exemplo 2
No código a seguir, vamos compactar uma linha, mostrá-la compactada e descompactá-la para mostrá-la.

 import zlib as zl line = b "Testando Python zlib" line_compress = zl.compress (line) print (line_compress) line_decompress = zl.decompress (line_compress) print (line_decompress) print (line_decompress.decode ("utf-8"))
Usamos a última linha do código para ir dos bytes à string (usando utf-8 na decodificação), pois a penúltima linha mostrará a b no início. O resultado do programa é o seguinte:

Agora vamos ver outra biblioteca, como gzip.

2. Módulo Gzip


Os exemplos vistos acima são válidos para esta biblioteca, vamos ver o exemplo 1 igual ao anterior, apenas alterando a biblioteca.

Exemplo 1
O código que temos é o seguinte, igual ao anterior, mudando zlib para gzip:

 import gzip line = b "Este é apenas um teste para o tutorial a ser publicado na Solvetic" line_compress = gzip.compress (line) print ("Tamanho não compactado% d"% len (linha)) print ("Tamanho compactado% d" % len (line_compress))
Se executarmos, teremos a seguinte saída:

A compressão pesa mais do que a não compactada. Se mudarmos o texto por um maior e executarmos:

Agora, se você melhorou o tamanho, mas ainda melhor compactou o zlib, então uma captura é colocada, a primeira execução usa zlib e o segundo gzip.

Vamos para o exemplo a seguir, que será o último.

Exemplo 2
Agora vamos escrever e ler de um arquivo, o código é o seguinte:

 import gzip fw = gzip.open ('test.txt.gz', 'wb') fw.write (b "Testando gzip") fw.close () fr = gzip.open ('test.txt.gz', ' rb ') print (fr.read (). decode ("utf-8")) fr.close ()
Você pode ver que não lidamos com as possíveis exceções que podem surgir; isso foi omitido para tornar o exemplo mais curto e direto. Se executarmos o código, teremos a seguinte saída:

Vimos alguns exemplos de uso das bibliotecas zlib e gzip, você pode consultar a documentação oficial do Python para aprofundar e ver melhor esses módulos e os mencionados acima. E caso você esteja interessado, deixamos o link para outro tutorial em Python: Serializar e desserializar.

Gostou e ajudou este tutorial?Você pode recompensar o autor pressionando este botão para dar a ele um ponto positivo

Você vai ajudar o desenvolvimento do site, compartilhando a página com seus amigos

wave wave wave wave wave