如何在Python zipfile模块中启用ZIP_DEFLATED压缩模式
解法说明
- 首先需要从
zipfile模块引入ZIP_DEFLATED常量,该常量对应通用的Deflate压缩算法 - 实例化
ZipFile对象时新增compression=ZIP_DEFLATED参数即可开启压缩,默认参数为ZIP_STORED,仅存储文件不执行压缩
修改后的完整实现代码如下:
from zipfile import ZipFile, ZIP_DEFLATED # 初始化时添加compression参数开启压缩 zipObj = ZipFile('sample1.zip', 'w', compression=ZIP_DEFLATED) # Add multiple files to the zip zipObj.write('ex3.py') zipObj.write('ex6.py') zipObj.write('ex7.py') # close the Zip File zipObj.close() print('All files zipped successfully!')
优化建议:推荐使用
with上下文管理器操作ZipFile,无需手动调用close()方法,避免程序异常退出时文件资源未正确释放:from zipfile import ZipFile, ZIP_DEFLATED with ZipFile('sample1.zip', 'w', compression=ZIP_DEFLATED) as zipObj: zipObj.write('ex3.py') zipObj.write('ex6.py') zipObj.write('ex7.py') print('All files zipped successfully!')
注:Python默认已集成Deflate压缩依赖的zlib库,如果你运行时抛出zlib相关报错,可检查你的Python编译安装配置是否开启了zlib模块支持
内容的提问来源于stack exchange,提问作者Fang
相关产品推荐
相关产品推荐

