使用codecs.open()访问内存中的解压缩文件
我正在尝试使用 codecs.open()
来打开内存中解压缩的文件。我已经弄明白了如何在内存中解压一个文件,但我不知道怎么创建一个文件对象并用 codecs
打开它。我试过不同的 ZipFile
属性,但都没有成功。
下面是我在内存中打开压缩文件的方法:
import zipfile, io
f = 'somezipfile.zip'
memory_object = io.BytesIO(f.read())
zip_in_memory = zipfile.ZipFile(memory_object)
1 个回答
2
你不需要使用 codecs.open()
来访问内存中的数据——这个方法是用来从硬盘加载文件的。你可以通过你的 zipfile 对象的 extract()
方法来提取文件内容,然后用 decode()
来解码得到的字符串。如果你还是想用 codecs
模块,你也可以通过 zip_in_memory.open(...)
获取一个类似文件的对象,然后用 codecs.EncodedFile
来包装这个返回的对象。