Python ZipFile 的 ZipInfo 为空

Python ZipFile's ZipInfo Empty

提问人:Dylan Holmes 提问时间:11/11/2023 更新时间:11/11/2023 访问量:19

问:

我正在尝试在本地读取两个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 上吗?

python python-zip文件

评论

0赞 Timeless 11/11/2023
你能说出你是如何定义的吗?path_to_zip2

答: 暂无答案