So komprimieren und dekomprimieren Sie Daten in Python

Inhaltsverzeichnis

Heute werden wir ein Tutorial sehen, das sich mit den Datenkomprimierung und -dekomprimierung in Python, eine sehr einfache Aufgabe, da wir über bestimmte Module verfügen, die es uns ermöglichen, diese Arbeit der Datenkomprimierung durchzuführen. Die Bibliotheken sind: zlib, gzip, bz2, zip-Datei Ja tarfile.

Während des gesamten Tutorials werden wir Beispiele einiger Bibliotheken sehen, um zu lernen, wie sie verwendet werden. Dies ist der beste Weg, um zu verstehen, wie sie funktioniert.

NotizEs wird Version 3 von Python verwenden.

Beginnen wir mit den Beispielen. Alle von ihnen werden einfach und leicht zu verstehen sein.

1. Zlib-Modul


Wir werden ein paar Beispiele mit dieser Bibliothek sehen, beide werden einfach sein, wie wir bereits gesagt haben.

Beispiel 1
Wir haben den folgenden Code, wie Sie sehen können, ist kurz:

 import zlib as zl line = b "Dies ist nur ein Test für das Tutorial zur Veröffentlichung in Solvetic" line_compress = zl.compress (line) print ("Uncompressed size% d"% len (line)) print (" Compressed size% d "% len (line_compress))
Wir komprimieren die ursprüngliche Zeile und zeigen, was der eine und der andere belegt, und erhalten die folgende Ausgabe:

Nun werden wir im folgenden Beispiel sehen, wie man dekomprimiert.

Beispiel 2
Im folgenden Code komprimieren wir eine Zeile, zeigen sie komprimiert an und entpacken sie, um sie anzuzeigen.

 import zlib as zl line = b "Testing 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"))
Wir verwenden die letzte Zeile des Codes, um von Bytes zu Strings zu wechseln (unter Verwendung von utf-8 bei der Dekodierung), da die vorletzte Zeile am Anfang ein b zeigt. Die Ausgabe des Programms ist wie folgt:

Wir gehen jetzt zu einer anderen Bibliothek wie gzip.

2. Gzip-Modul


Die oben gezeigten Beispiele gelten für diese Bibliothek, sehen wir uns Beispiel 1 wie das vorherige an, nur das Ändern der Bibliothek.

Beispiel 1
Der Code, den wir haben, ist der folgende, der gleiche wie der vorherige, der zlib in gzip ändert:

 import gzip line = b "Dies ist nur ein Test für das Tutorial zur Veröffentlichung in Solvetic" line_compress = gzip.compress (line) print ("Uncompressed size% d"% len (line)) print ("Compressed size % d " % len (line_compress))
Wenn wir ausführen, haben wir die folgende Ausgabe:

Kompression wiegt mehr als unkomprimierte. Wenn wir den Text durch einen größeren ändern und ausführen:

Wenn Sie nun die Größe verbessert haben, aber zlib noch besser komprimieren, dann wird ein Capture erstellt, die erste Ausführung verwendet zlib und die zweite gzip.

Nehmen wir das folgende Beispiel, das das letzte sein wird.

Beispiel 2
Jetzt schreiben und lesen wir aus einer Datei, der Code lautet wie folgt:

 import gzip fw = gzip.open ('test.txt.gz', 'wb') fw.write (b "Testing gzip") fw.close () fr = gzip.open ('test.txt.gz', ' rb ') print (fr.read ().decode ("utf-8")) fr.close ()
Sie sehen, dass wir nicht auf mögliche Ausnahmen eingehen, dies wurde weggelassen, um das Beispiel kürzer und direkter zu machen. Wenn wir den Code ausführen, haben wir die folgende Ausgabe:

Wir haben einige Beispiele für die Verwendung der Bibliotheken zlib und gzip gesehen. Sie können die offizielle Python-Dokumentation konsultieren, um diese und die oben genannten Module zu vertiefen und besser zu sehen. Und falls Sie interessiert sind, hinterlassen wir Ihnen den Link zu einem anderen Tutorial zu Python: Serialize and deserialize.

Hat dir dieses Tutorial gefallen und geholfen?Sie können den Autor belohnen, indem Sie diesen Knopf drücken, um ihm einen positiven Punkt zu geben
wave wave wave wave wave