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

时间:2011-01-23 19:24:32

标签: python memory codec zipfile

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

所以,这是我在内存中打开zip的方式:

import zipfile, io

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

1 个答案:

答案 0 :(得分:2)

您不需要codecs.open()来访问内存中的数据 - 它用于从磁盘加载文件。您可以使用extract()方法从zipfile obbject中提取文件内容,并使用decode()解码生成的字符串。如果您坚持使用codecs模块,您还可以通过zip_in_memory.open(...)获取类似文件的对象,并使用codecs.EncodedFile包装返回的对象。