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