我正在尝试使用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
请问是否了解其他压缩方法,能够给出与上述代码一致的更好结果?
brotli.decompress(base64.b64decode(base64.b64encode(brotli.compress("payloadpayload..".encode())).decode())).decode()
提供了稍微更好的压缩比,并在 Python 3 中返回一个字符串。不过,我不理解 basse64 编码/解码 - 如果有更合理的解释或方法,将不胜感激。(我正在使用压缩后的字符串作为缓存键,因此需要一个字符串。) - Chris