1

我正在读取一个压缩文件;未压缩的数据应被解释为 UTF-8。所以我有点想在参数中同时使用hook_compressedand 。但是,我看不到堆叠/包装它们的方法。hook_encodedfileinput 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 回答