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