Wie kann man einen string komprimieren, und erhalten Sie einen string zurück mit zlib?

Ich versuche zu nutzen, die Zlib für text-Kompression.

Ich habe zum Beispiel einen string T='blah blah blah blah' ich muss es komprimieren für diese Zeichenfolge. Ich bin mit S=zlib.compress(T) zu komprimieren. Nun, was ich will, ist, um die nicht-binären form S so, dass ich Dekomprimieren kann T aber in einem anderen Programm.

Dank!

EDIT: ich glaube, ich habe eine Methode zu lösen, was ich wollte. Hier ist die Methode:

import zlib, base64
text = 'STACK OVERFLOW STACK OVERFLOW STACK OVERFLOW STACK OVERFLOW STACK OVERFLOW STACK OVERFLOW STACK OVERFLOW STACK OVERFLOW STACK OVERFLOW STACK OVERFLOW '
code =  base64.b64encode(zlib.compress(text,9))
print code

Gibt:

eNoLDnF09lbwD3MNcvPxD1cIHhxcAE9UKaU=

Kann ich jetzt diesen code kopieren, um ein anderes Programm, um die ursprünglichen Variablen zurück:

import zlib, base64
s='eNoLDnF09lbwD3MNcvPxD1cIHhxcAE9UKaU='
data = zlib.decompress(base64.b64decode(s))
print data

Bitte schlage vor, wenn Sie Kenntnis über weitere Komprimierung-Methode, die bessere Ergebnisse in Einklang mit dem obigen code.

  • Die Nutzung der zlib zu Dekomprimieren S ?
  • Was hindert Sie daran, mit zlib.Dekomprimieren() im anderen Programm?
  • Sie akzeptieren meine Antwort auf Ihre Vorherige Frage? Das könnte mich ermutigen, Ihnen zu helfen, mit dieser neuen Frage. Jetzt verstehe ich, was Sie bekommen.
  • Wie kann ich drucken Sie S so, dass ich es in einem anderen Programm ?
  • Hinweis: die Komprimierung wirklich kleine Zeichenfolgen, die den Aufwand mit der komprimierten Daten ist wahrscheinlich länger als die ursprüngliche Zeichenfolge...
InformationsquelleAutor Quixotic | 2011-01-30
Schreibe einen Kommentar