我有 archive.zip
有两个文件: hello.txt
和 world.txt
我想用带有该代码的新文件覆盖 hello.txt
文件:
import zipfile
z = zipfile.ZipFile('archive.zip','a')
z.write('hello.txt')
z.close()
但它不会覆盖文件,它会以某种方式创建 hello.txt
的另一个实例——看看 winzip 截图:
由于没有像 zipfile.remove()
这样的东西,处理这个问题的最佳方法是什么?
原文由 nukl 发布,翻译遵循 CC BY-SA 4.0 许可协议
使用 python zipfile 模块无法做到这一点。您必须创建一个新的 zip 文件并重新压缩第一个文件中的所有内容,以及新的修改后的文件。
下面是一些代码来做到这一点。但请注意,它效率不高,因为它解压缩然后重新压缩所有数据。
用法: