1

我正在尝试恢复/解码一个经过 gzip 压缩然后进行 base64 编码的字符串。目前,我正在使用 Python 的 gzip 模块(尤其是 GzipFile 类)来解压缩作为 base64 解码结果的类文件对象。在 Python 2.7.3 下:

import gzip
from base64 import b64decode
from cStringIO import StringIO

for page_content in open(page_content_file, 'rb'):
    page_content_decoded = gzip.GzipFile(fileobj=StringIO(b64decode(page_content))).read()

我遇到的问题是我在 gzip 解压缩阶段达到了某种上限。我已经分解了这个长语句并测试了各个组件...... page_content 的长度在 base64decode() 或 StringIO() 级别不受限制。

(为图片链接道歉,我是新用户,没有足够的声誉来附加图片)。

以下是原始压缩后的 page_content 长度的外观,以及page_content_decoded 字符串的长度

显然,输出长度更长,因为我正在解压缩它们;但是,很明显我正在达到某种最大缓冲区大小或 max_bytes 或其他东西。我可以为 gzip 解压缩设置一个值吗?我是否需要分块读取 gzip 文件并将这些块连接起来?(我已经尝试过这两种方法都没有成功)。

谢谢你的帮助!

4

0 回答 0