我正在尝试使用 Python 中的zipfile模块来创建简单的 zip 文件:
import zipfile
files = ('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h')
zip_file_name = 'zipfile_test.zip'
zfh = zipfile.ZipFile(zip_file_name, 'w')
for file in files:
print 'Archiving file %s' % file
zfh.write(zip_file_name)
zfh.close()
文件啊在我的工作目录下,是空的,touch a b c d e f g h
用来测试。
将前 7 个项目添加到 zip 文件后,它会挂在最后一个项目上,但会继续写入 zip 文件,直到空间耗尽。这发生在我测试过的两个系统上,一个使用 Python 2.4.3,另一个使用 Python 2.6.2。如果文件数少于 6 个或 7 个,则创建 zip 文件没有任何问题。否则,它会在 7-15 个文件之间失败并开始将垃圾写入文件末尾。我试过改变:
zfh.write(zip_file_name)
到:
zfh.write(zip_file_name, zip_file_name, zipfile.ZIP_DEFLATED)
这有时让我可以再写几个文件,但也不可避免地会失败。
我究竟做错了什么?