圧縮ファイルを読んでいます。非圧縮データは UTF-8 として解釈する必要があります。hook_compressedしたがって、パラメータでとhook_encoded, の両方を使用したいと思いfileinput openhookます。しかし、それらをスタック/ラップする方法がわかりません。
万が一、既存のフックがファイル名だけでなくファイルのようなオブジェクトを受け取ったので、これを試してみました:
def myhook(file,mode):
return (fileinput.hook_encoded("utf-8"))(fileinput.hook_compressed(file,mode),mode)
...しかし、そのような運はありません。