テキスト圧縮にZlibを利用しようとしています。
たとえば、文字列_T='blah blah blah blah'
_があります。この文字列用に圧縮する必要があります。 S=zlib.compress(T)
を使用して圧縮しています。ここで必要なのは、非バイナリ形式のS
を取得して、別のプログラムでT
を解凍できるようにすることです。
ありがとう!
編集:私は私が望んでいたことを解決する方法を手に入れたと思います。方法は次のとおりです。
_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
_
それは与える:
_eNoLDnF09lbwD3MNcvPxD1cIHhxcAE9UKaU=
_
これで、このコードを別のプログラムにコピーして、元の変数を元に戻すことができます。
_import zlib, base64
s='eNoLDnF09lbwD3MNcvPxD1cIHhxcAE9UKaU='
data = zlib.decompress(base64.b64decode(s))
print data
_
上記のコードと一致するより良い結果をもたらす他の圧縮方法を知っているかどうかを提案してください。
プログラム1:
T = 'blah blah blah blah'
S = zlib.compress(T)
with open("temp.zlib", "wb") as myfile:
myfile.write(S)
これにより、圧縮された文字列がtemp.zlib
というファイルに保存されるため、プログラム2は後でそれを取得して解凍できます。
プログラム2:
with open("temp.zlib", "rb") as myfile:
S = myfile.read()
T = zlib.decompress(S)