3

仕事をしているように見えるこのスニペットを見つけましたが、なぜStringIOを使用するのか理解できません。fすでにファイルのようなオブジェクトではありませんか? それを読んでから、もう一度ファイルのように見せて、もう一度読むだけで、何が必要ですか? 私はそれをテストしました (まあ、それを少し変更したバージョンです)、StringIO なしでは動作しません。

4

3 に答える 3

1

Python 3.2 で修正された Python 標準ライブラリの欠陥のようです。http://www.enricozini.org/2011/cazzeggio/python-gzip/
を参照してください。

urllibまた、ファイル オブジェクトは、gzip によって要求されurllib2たメソッドを提供しません。tell()

于 2011-10-10T20:10:33.510 に答える
1

gunzip コードが、メソッドを持つファイルのようなオブジェクトを必要とする可能性がありますがseek、HTTP ライブラリが提供する可能性はほとんどありません。「うまくいかない」とはどういう意味ですか? エラーメッセージ?

効率が本当に重要な場合は、コードを少し変更して、StringIO ではなく cStringIO を使用するようにします。

于 2011-10-10T20:11:21.520 に答える
0

コードの関連部分を読む方法は次のとおりです。

  • URLを開く
  • 完全にメモリにダウンロードします(readメソッドを使用)
  • ファイルのようなオブジェクトとして利用できるように、コンテンツを StringIO オブジェクトに保存します。
  • それを使ってgzipとjsonを実行します。
于 2011-10-10T19:54:06.450 に答える