代码之家  ›  专栏  ›  技术社区  ›  Robert Gamble

Python zipfile在写入时挂起

  •  3
  • Robert Gamble  · 技术社区  · 15 年前

    zipfile Python中用于创建简单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文件,直到空间耗尽。这发生在我测试过的两个系统上,一个是Python2.4.3,另一个是Python2.6.2。如果文件数少于6或7,则创建zip文件时不会出现任何问题。否则,它会在7-15个文件之间失败,并开始将垃圾写入文件末尾。我尝试过改变:

      zfh.write(zip_file_name)
    

    致:

      zfh.write(zip_file_name, zip_file_name, zipfile.ZIP_DEFLATED)
    

    我做错了什么?

    1 回复  |  直到 15 年前
        1
  •  9
  •   Jon-Eric    15 年前

    你把 压缩文件 进入zip文件:

    zfh.write(zip_file_name)
    

    zfh.write(file)