Python zipfile在写入时会挂起

时间:2010-01-21 16:11:17

标签: python zipfile

我正在尝试使用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()

文件a-h在我的工作目录中并为空,请使用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)

有时允许我写几个文件,但也不可避免地失败。

我做错了什么?

1 个答案:

答案 0 :(得分:9)

您将 zip文件放入zip文件中:

zfh.write(zip_file_name)

应该是:

zfh.write(file)