pythonzipfile模块似乎并没有压缩我的文件

我做了一个小帮手function:

import zipfile def main(archive_list=[],zfilename='default.zip'): print zfilename zout = zipfile.ZipFile(zfilename, "w") for fname in archive_list: print "writing: ", fname zout.write(fname) zout.close() if __name__ == '__main__': main() 

问题是,我的所有文件都没有被压缩! 这些文件的大小相同,实际上只是将扩展名更改为“.zip”(在本例中为“.xls”)。

我在winXP sp2上运行python 2.5。

这是因为ZipFile要求你指定压缩方法。 如果不指定它,则假定压缩方法是zipfile.ZIP_STORED ,它只存储文件而不压缩它们。 你需要指定的方法是zipfile.ZIP_DEFLATED 。 您将需要安装zlib模块( 通常默认安装)。

 import zipfile def main(archive_list=[],zfilename='default.zip'): print zfilename zout = zipfile.ZipFile(zfilename, "w", zipfile.ZIP_DEFLATED) # <--- this is the change you need to make for fname in archive_list: print "writing: ", fname zout.write(fname) zout.close() if __name__ == '__main__': main() 

压缩'zip file'格式有一个非常简单的方法,

shutil.make_archive库中使用。

例如:

 import shutil shutil.make_archive(file_name, 'zip', file location after compression) 

可以在以下url查看更多的文档: https : //docs.python.org/2/library/shutil.html#shutil.make_archive