Python zipfile 写入时挂起
我正在尝试使用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)