在Python 2.7中解压缩zip字符串

时间:2017-01-02 20:17:03

标签: python python-2.7 zlib

我正在尝试在Python 2.7中解压缩byte64编码的字符串。

我可以通过在命令行中运行它来验证我的字符串是否有效:

echo -n "MY_BASE64_ENCODED_STRING" | base64 -d | zcat

但是,如果我在Python2.7中运行它:

b64_data = 'MY_BASE64_ENCODED_STRING'
text_data = zlib.decompress(base64.b64decode(b64_data))

我得到一个例外:

  

解压缩数据时出错-3:错误的标题检查

我应该将额外的参数传递给zlib.decompress以使其工作吗?

1 个答案:

答案 0 :(得分:2)

如评论中所述,您的数据采用gzip格式,而不仅仅是zlib压缩数据。在Python 2.7中,您可以使用GzipFileStringIO来处理字符串:

>>> from gzip import GzipFile
>>> from StringIO import StringIO
>>> from base64 import b64decode
>>> data = 'H4sIAEm2algAAytJLS7hAgDGNbk7BQAAAA=='
>>> GzipFile(fileobj=StringIO(b64decode(data))).read()
'test\n'