Python的GzipFile类是否具有默认的最大缓冲区大小?

时间:2012-10-04 23:10:40

标签: python gzip base64 buffer compression

我正在尝试恢复/解码已经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()级别的限制。

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

以下是original, compressed page_content lengths外观以及lengths of the page_content_decoded strings look之类的内容:

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

感谢您的帮助!

0 个答案:

没有答案