解压缩zip文件时,您希望将内部zip文件写入内存,而不是写入磁盘。为此,我使用了
BytesIO。
查看以下代码:
import osimport ioimport zipfiledef extract(filename): z = zipfile.ZipFile(filename) for f in z.namelist(): # get directory name from file dirname = os.path.splitext(f)[0] # create new directory os.mkdir(dirname) # read inner zip file into bytes buffer content = io.BytesIO(z.read(f)) zip_file = zipfile.ZipFile(content) for i in zip_file.namelist(): zip_file.extract(i, dirname)
如果
extract("zipfile.zip")以zipfile.zipas身份运行:
zipfile.zip/ dirA.zip/ a dirB.zip/ b dirC.zip/ c
输出应为:
dirA/ adirB/ bdirC/ c



