Python 使用codecs.open()访问内存中解压缩的文件

Python 使用codecs.open()访问内存中解压缩的文件,python,memory,codec,zipfile,Python,Memory,Codec,Zipfile,我正在尝试使用codecs.open()打开内存中解压缩的文件。我已经知道如何在内存中解压文件,但我不知道如何创建文件对象并使用编解码器打开它。我尝试过不同的ZipFile属性,但运气不好 下面是我如何在内存中打开zip的: import zipfile, io f = 'somezipfile.zip' memory_object = io.BytesIO(f.read()) zip_in_memory = zipfile.ZipFile(memory_object) 访问内存中的数据不

我正在尝试使用
codecs.open()
打开内存中解压缩的文件。我已经知道如何在内存中解压文件,但我不知道如何创建文件对象并使用
编解码器打开它。我尝试过不同的
ZipFile
属性,但运气不好

下面是我如何在内存中打开zip的:

import zipfile, io

f = 'somezipfile.zip'
memory_object = io.BytesIO(f.read()) 
zip_in_memory = zipfile.ZipFile(memory_object)

访问内存中的数据不需要
codecs.open()
,它是用来从磁盘加载文件的。您可以使用zipfile对象的
extract()
方法从zipfile对象中提取文件内容,并使用
decode()
对结果字符串进行解码。如果你坚持使用
编解码器
模块,你也可以通过
zip\u在内存中获得一个类似文件的对象。打开(…)
并用包装返回的对象。

但是为了速度,我想这样做。我正在重写代码,以便在内存中访问文件,而不是在临时文件中。@marw:你想要什么?我回答的要点是,您不需要使用编解码器.open()
,如果您的文件已经在内存中,您甚至不能使用它。顺便说一句,谢谢您的回答!编辑:我现在明白了,再次感谢。