Cum să comprimați și decomprimați datele în Python

Astăzi vom vedea un tutorial care se va ocupa de comprimarea și decompresiunea datelor în Python, o sarcină foarte ușoară, deoarece avem anumite module care ne vor permite să realizăm această activitate de comprimare a datelor. Bibliotecile sunt: zlib, gzip, bz2, fișier Zip Da tarfile.

De-a lungul tutorialului vom vedea exemple de biblioteci pentru a învăța cum să-l folosim, este cel mai bun mod de a înțelege cum funcționează.

NotăSe va folosi versiunea 3 a Python.

Să începem cu exemplele. Toate acestea vor fi simple și ușor de înțeles.

1. Modulul Zlib


Vom vedea câteva exemple cu această bibliotecă, ambele vor fi ușoare așa cum am spus mai înainte.

Exemplul 1
Avem următorul cod, cum puteți vedea este scurt:

 import zlib ca zl line = b "Acesta este doar un test pentru tutorialul care urmează să fie publicat în Solvetic" line_compress = zl.compress (line) print ("Dimensiune necomprimată% d"% len (linie)) print ("Dimensiune comprimată% d "% len (line_compress))
Comprimăm linia originală și arătăm ce ocupă una și cealaltă, obținând următoarea ieșire:

Acum vom vedea cum să decomprimăm în exemplul următor.

Exemplul 2
În următorul cod vom comprima o linie, o vom arăta comprimată și o vom dezarhiva pentru a o arăta.

 import zlib ca zl line = b "Testare 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"))
Folosim ultima linie a codului pentru a merge de la octeți la șir (folosind utf-8 în decodare), deoarece penultima linie va arăta a b la început. Ieșirea programului este după cum urmează:

Acum mergem să vedem o altă bibliotecă, cum ar fi gzip.

2. Modulul Gzip


Exemplele de mai sus sunt valabile pentru această bibliotecă, să vedem exemplul 1 la fel ca și precedentul, schimbând doar biblioteca.

Exemplul 1
Codul pe care îl avem este următorul, același cu cel anterior, schimbând zlib în gzip:

 import gzip line = b "Acesta este doar un test pentru tutorialul care urmează să fie publicat în Solvetic" line_compress = gzip.compress (line) print ("Dimensiune necomprimată% d"% len (linie)) print ("Dimensiune comprimată% d" % len (line_compress))
Dacă executăm, avem următoarea ieșire:

Compresiunea cântărește mai mult decât una necomprimată. Dacă schimbăm textul cu unul mai mare și executăm:

Acum, dacă ați îmbunătățit dimensiunea, dar mai bine comprimați zlib, atunci se pune o captură, prima execuție folosește zlib și al doilea gzip.

Să mergem pentru următorul exemplu, care va fi ultimul.

Exemplul 2
Acum vom scrie și citi dintr-un fișier, codul este după cum urmează:

 import gzip fw = gzip.open ('test.txt.gz', 'wb') fw.write (b "Testarea gzip") fw.close () fr = gzip.open ('test.txt.gz', ' rb ') print (fr.read (). decode ("utf-8")) fr.close ()
Puteți vedea că nu ne ocupăm de eventualele excepții care pot apărea, acest lucru a fost omis pentru a face exemplul mai scurt și mai direct. Dacă rulăm codul, avem următoarea ieșire:

Am văzut câteva exemple de utilizare a bibliotecilor zlib și gzip, puteți consulta documentația oficială Python pentru a aprofunda și a vedea mai bine aceste module și cele menționate mai sus. Și în cazul în care sunteți interesat, vă lăsăm linkul către un alt tutorial despre Python: Serializați și deserializați.

V-a plăcut și ați ajutat acest tutorial?Puteți recompensa autorul apăsând acest buton pentru a-i oferi un punct pozitiv
wave wave wave wave wave