我正在尝试利用 Zlib 进行文本压缩。
例如我有一个字符串T='blah blah blah blah'
我需要压缩这个字符串。我在用S=zlib.compress(T)
来压缩它。现在我想要的是得到非二进制形式S
这样我就可以解压T
但在不同的程序中。
Thanks!
编辑:我想我有一个方法来解决我想要的问题。方法如下:
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
如果您知道任何其他压缩方法可以提供与上述代码一致的更好结果,请提出建议.
方案一:
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)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)