我正在尝试恢复/解码已经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文件并连接这些块? (我已经尝试过这两种方法而没有成功)。
感谢您的帮助!