Python zipfile 写入时挂起

3 投票
1 回答
1043 浏览
提问于 2025-04-15 18:18

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

文件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 个回答

10

你把 压缩文件 放进了压缩文件里:

zfh.write(zip_file_name)

应该是:

zfh.write(file)

撰写回答