我的建议是使用一个
StringIO对象。它们模拟文件,但驻留在内存中。因此,您可以执行以下操作:
# get_zip_data() gets a zip archive containing 'foo.txt', reading 'hey, foo'import zipfilefrom StringIO import StringIOzipdata = StringIO()zipdata.write(get_zip_data())myzipfile = zipfile.ZipFile(zipdata)foofile = myzipfile.open('foo.txt')print foofile.read()# output: "hey, foo"或更简单地(向Vishal致歉):
myzipfile = zipfile.ZipFile(StringIO(get_zip_data()))for name in myzipfile.namelist(): [ ... ]
在Python 3中,使用BytesIO代替StringIO:
import zipfilefrom io import BytesIOfilebytes = BytesIO(get_zip_data())myzipfile = zipfile.ZipFile(filebytes)for name in myzipfile.namelist(): [ ... ]



