gpt4 book ai didi

python - 在 Python 中将多个 zip 文件合并为一个 zip 文件

转载 作者:太空狗 更新时间:2023-10-29 17:28:21 25 4
gpt4 key购买 nike

我有多个具有相同结构的 zip 文件——它们在根级别包含 XML 文件。每个 zip 文件中的所有文件都是唯一的(在 zip 文件中没有重复)。我需要将所有 zip 文件中的所有 XML 文件组合成一个 zip 文件(与原始 zip 文件具有相同的结构)。关于如何最好地去做这件事的建议?谢谢。

最佳答案

这是我能想到的最短的版本:

>>> import zipfile as z
>>> z1 = z.ZipFile('z1.zip', 'a')
>>> z2 = z.ZipFile('z2.zip', 'r')
>>> z1.namelist()
['a.xml', 'b.xml']
>>> z2.namelist()
['c.xml', 'd.xml']
>>> [z1.writestr(t[0], t[1].read()) for t in ((n, z2.open(n)) for n in z2.namelist())]
[None, None]
>>> z1.namelist()
['a.xml', 'b.xml', 'c.xml', 'd.xml']
>>> z1.close()

在不测试替代方案的情况下,对我来说这是最好的(也可能是最明显的!)解决方案,因为 - 假设两个 zip 文件包含相同数量的数据,此方法只需要解压缩和重新压缩其中的一半(1 个文件)。

PS:列表理解只是为了在控制台的一行中保留指令(这加快了调试速度)。好的 pythonic 代码需要一个适当的 for 循环,因为结果列表没有任何作用......

喂!

关于python - 在 Python 中将多个 zip 文件合并为一个 zip 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10568468/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com