Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
可以使用python文件输入';s openhook选项将hook_压缩和hook_编码堆叠在一起?_Python - Fatal编程技术网

可以使用python文件输入';s openhook选项将hook_压缩和hook_编码堆叠在一起?

可以使用python文件输入';s openhook选项将hook_压缩和hook_编码堆叠在一起?,python,Python,我正在读一个压缩文件;未压缩的数据应解释为UTF-8。所以我想在fileinputopenhook参数中同时使用hook\u compressed和hook\u encoded。但是,我看不到堆叠/包装它们的方法 现有的钩子很可能采用类似文件的对象,而不仅仅是文件名,我尝试了一下: def myhook(file,mode): return (fileinput.hook_encoded("utf-8"))(fileinput.hook_compressed(file,mode),mod

我正在读一个压缩文件;未压缩的数据应解释为UTF-8。所以我想在
fileinput
openhook
参数中同时使用
hook\u compressed
hook\u encoded
。但是,我看不到堆叠/包装它们的方法

现有的钩子很可能采用类似文件的对象,而不仅仅是文件名,我尝试了一下:

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

……但没有这样的运气

相当老的问题,但是
hook_encoded
只使用
codecs
模块。因此,您可以使用
fileinput.input(mode=“rb”,open\u hook=fileinput.hook\u compressed)
然后使用
codecs.decode对结果进行解码。但是,如果您将此消息传递给应用程序的任何部分都知道如何处理编码字符串,那么您可以不做任何事情


还是你自己找到了另一个答案?

这是一个很老的问题,但是
hook\u encoded
只使用
编解码器
模块。因此,您可以使用
fileinput.input(mode=“rb”,open\u hook=fileinput.hook\u compressed)
然后使用
codecs.decode对结果进行解码。但是,如果您将此消息传递给应用程序的任何部分都知道如何处理编码字符串,那么您可以不做任何事情

还是你自己找到了另一个答案