Wie gzip ein bytearray in Python?
Habe ich binäre Daten in ein bytearray handeln, das möchte ich gzip ersten und dann per post Anfragen. Ich fand heraus, wie man gzip eine Datei, aber konnte nicht finden, dass es sich um ein bytearray. Also, wie kann ich gzip ein bytearray via Python?
- Der hässliche Weg: speichern Sie es in einer Datei :P. Aber vielleicht hilft: stackoverflow.com/questions/8506897/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie einen Blick auf die
zlib
-Modul von Python.Python 3:
zlib
-ModulEin kurzes Beispiel:
Können Sie die entpacken Sie die Daten wieder per:
Python 2:
zlib
-ModulEin kurzes Beispiel:
Können Sie die entpacken Sie die Daten wieder per:
Wie Sie sehen können, ist Python 3 verwendet bytearrays, während Python 2 verwendet strings.
compressedData = zlib.compress(mystring)
Sollte dies tun. Die zlib benötigt Zugriff auf bytearray-Inhalte, verwenden Sie Puffer() für, die.
Im Falle der bytearray ist nicht zu groß, um im Speicher gespeichert, mehr als einmal, und bekannt als
b
können Sie nur:Wenn Sie tun müssen, deocding zuerst haben Sie einen Blick auf die
decode()
Methode der bytearray.str()
auf ein bytearray Sie bekommen so etwas wie"bytearray(b'test')"
- aber er will komprimiert das bytearray geschrieben und nicht einige string-Beschreibung der bytearray - (ich denke, das könnte auch dazu führen, Verlust von Daten, in einigen besonderen Fällen?).Dem zlib-Modul von Python-Standard-Bibliothek sollte Ihre Anforderungen erfüllen :
Dies ist die Ausgabe unter Python ist3.4, aber es funktioniert unter Python 2.7 -