1

圧縮ファイルを読んでいます。非圧縮データは UTF-8 として解釈する必要があります。hook_compressedしたがって、パラメータでとhook_encoded, の両方を使用したいと思いfileinput openhookます。しかし、それらをスタック/ラップする方法がわかりません。

万が一、既存のフックがファイル名だけでなくファイルのようなオブジェクトを受け取ったので、これを試してみました:

def myhook(file,mode):
    return (fileinput.hook_encoded("utf-8"))(fileinput.hook_compressed(file,mode),mode)

...しかし、そのような運はありません。

4

1 に答える 1

1

かなり古い質問ですが、モジュールhook_encodedを使用するだけです。codecsしたがって、 を使用fileinput.input(mode="rb", open_hook=fileinput.hook_compressed)して結果をデコードできますcodecs.decode。ただし、これを渡すアプリケーションのどの部分でも、エンコードされた文字列を処理する方法を知っている場合は、何もしなくても問題ありません。

それとも、自分で別の答えを見つけましたか?

于 2014-02-14T10:56:58.227 に答える