将zipfile解压缩到内存?

use*_*003 42 python memory zip zipfile stringio

如何将zip解压缩到内存中?

我尝试(返回None.getvalue()):

from zipfile import ZipFile
from StringIO import StringIO

def extract_zip(input_zip):
    return StringIO(ZipFile(input_zip).extractall())
Run Code Online (Sandbox Code Playgroud)

mat*_*ata 69

extractall提取到文件系统,所以你不会得到你想要的.要在内存中提取文件,请使用该ZipFile.read()方法.

如果你真的需要内存中的完整内容,你可以这样做:

def extract_zip(input_zip):
    input_zip=ZipFile(input_zip)
    return {name: input_zip.read(name) for name in input_zip.namelist()}
Run Code Online (Sandbox Code Playgroud)


Dev*_*ium 13

经常使用存档我会建议制作一个工具,以便舒适地使用内存存档.像这样的东西: __CODE__

奇迹般有效