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

1 投票
1 回答
880 浏览
提问于 2025-04-16 10:28

我正在尝试使用 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 来包装这个返回的对象。

撰写回答