use*_*003 5 python zip serialization dictionary zipfile
你能帮我写一个函数返回:
dict("file1.txt": list(<contents of file1>),
"file2.txt": list(<contents of file2>),
"file3.txt": list(<contents of file3>),
"file4.txt": list(<contents of file4>))
Run Code Online (Sandbox Code Playgroud)
输入时:
file.zip:
outer\
outer\inner1.zip:
file1.txt
file2.txt
outer\inner2.zip:
file3.txt
file4.txt
Run Code Online (Sandbox Code Playgroud)
我的尝试(以下除外):
WindowsError: [错误 32] 进程无法访问该文件,因为它正被另一个进程使用
“文件不是 zip 文件”
“文件不是 zip 文件”
AttributeError: ZipFile 实例没有属性“寻求”
终于解决了……在以下方面的帮助下:将 zipfile 提取到内存?;
from zipfile import ZipFile, is_zipfile
def extract_zip(input_zip):
input_zip=ZipFile(input_zip)
return {name: input_zip.read(name) for name in input_zip.namelist()}
def extract_all(input_zip):
return {entry: extract_zip(entry) for entry in ZipFile(input_zip).namelist() if is_zipfile(entry)}
Run Code Online (Sandbox Code Playgroud)