我正在尝试使用codecs.open()
打开内存解压缩文件。我已经弄清楚如何在内存中解压缩文件,但我不知道如何创建文件对象并使用codecs
打开它。我尝试过不同的ZipFile
属性,但没有运气。
所以,这是我在内存中打开zip的方式:
import zipfile, io
f = 'somezipfile.zip'
memory_object = io.BytesIO(f.read())
zip_in_memory = zipfile.ZipFile(memory_object)
答案 0 :(得分:2)
您不需要codecs.open()
来访问内存中的数据 - 它用于从磁盘加载文件。您可以使用extract()
方法从zipfile obbject中提取文件内容,并使用decode()
解码生成的字符串。如果您坚持使用codecs
模块,您还可以通过zip_in_memory.open(...)
获取类似文件的对象,并使用codecs.EncodedFile
包装返回的对象。