提问人:Dylan Holmes 提问时间:11/11/2023 更新时间:11/11/2023 访问量:19
Python ZipFile 的 ZipInfo 为空
Python ZipFile's ZipInfo Empty
问:
我正在尝试在本地读取两个zip文件,并执行某种合并。 从 Zip #1 中获取一些文件子集,从 Zip #2 中获取一个子集,并将它们合并到 Zip #3 中。问题是 ZipFile/ZipInfo 的行为似乎很奇怪,并且 ZipInfo 为空。我的代码在我的本地 Windows 机器上完美运行,但是,在我的远程 Linux 机器上,它产生了以下结果......
我的代码如下所示:
out_data = BytesIO()
with ZipFile(out_data, 'w') as out_zip:
with ZipFile(path_to_zip, 'r') as zip_1:
file_list = zip_1.infolist()
# ...
with ZipFile(path_to_zip2, 'r') as zip_2:
file_list = zip_2.infolist()
print(file_list)
for file in file_list:
print(f"File: {file.filename}")
....
问题是,在打印zip.infolist()时,我得到的输出如下所示:
[,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,]
如果我对它执行 len(),它会返回正确数量的文件,并且在迭代它时打印单个 ZipInfo 时,我得到以下结果:
File:
File:
File:
...
好像 ZipInfo 是空的/无的,或者其他什么。 生成的zip_data (BytesIO) 确实有一定数量的字节,因此它似乎确实写入了数据。
当我将 zip_data 的值写入文件时,它似乎是一个有效的工作 ZipFile。 但是,我想知道为什么它会这样表现?是因为它在 Debian 系统而不是 Windows 上吗?
答: 暂无答案
评论
path_to_zip2