使用zipfile库可轻松实现python文件压缩;2. 基础用法包括创建zipfile对象并调用write方法添加文件,指定arcname避免路径问题;3. 压缩目录需遍历其内容递归添加,推荐使用os.walk实现;4. 常用压缩算法为zipfile.zip_deflated,无需压缩则用zip_stored;5. 操作完成后应妥善处理异常并清理资源,确保程序健壮性。完整示例展示了从创建文件到压缩及清理的全过程。

要在Python里实现文件压缩,尤其是处理常见的zip格式,
zipfile
库绝对是首选。它内置在Python标准库里,用起来非常直接,无论是打包文件、解压内容,还是查看压缩包里的东西,都能轻松搞定。
说起文件压缩,我们通常想到的就是把一堆散乱的文件或者一个文件夹打包成一个更小的、方便传输和存储的档案。Python的
zipfile
库就是干这个的。
最基础的用法,比如把一个文件压缩进去:
立即学习“Python免费学习笔记(深入)”;
import zipfileimport os# 为了让代码可运行,我们先创建一个示例文件file_to_compress = 'my_document.txt'with open(file_to_compress, 'w', encoding='utf-8') as f: f.write("这是我的重要文档内容。n") f.write("里面有一些关键信息。n")output_zip_file = 'archive.zip'try: # 'w' 模式表示写入(如果文件存在则覆盖),zipfile.ZIP_DEFLATED 是常用的压缩算法 with zipfile.ZipFile(output_zip_file, 'w', zipfile.ZIP_DEFLATED) as zf: # arcname 参数决定了文件在压缩包里的名字,这里用 basename 避免包含完整路径 zf.write(file_to_compress, arcname=os.path.basename(file_to_compress)) print(f"'{file_to_compress}' 已经成功压缩到 '{output_zip_file}'。")except FileNotFoundError: print(f"错误:文件 '{file_to_compress}' 不存在。")except Exception as e: print(f"压缩过程中发生错误:{e}")finally: # 清理示例文件 if os.path.exists(file_to_compress): os.remove(file_to_compress)
这里我用了
zipfile.ZIP_DEFLATED
,这是最常见的压缩算法,效果通常不错。如果不需要压缩,只想打包,可以用
zipfile.ZIP_STORED
,那样速度会快很多,但文件大小不变。
arcname
参数也很重要,它决定了文件在压缩包里的名字,不指定的话,会保留原始文件的完整路径,有时这不是我们想要的。
要是想把一个目录下的所有文件都塞进去,那就需要遍历一下了。这通常是我处理项目备份或者发布时常用的方式:
import zipfileimport osdef zip_directory(path_to_zip, output_zip_path): """ 将指定目录下的所有文件和子目录压缩到ZIP文件。 """ # 创建一个示例目录和文件 example_dir = path_to_zip os.makedirs(os.path.join(example_dir, 'sub_folder'), exist_ok=True) with open(os.path.join(example_dir, 'file1.txt'), 'w', encoding='utf-8') as f: f.write('这是文件1的内容。n') with open(os.path.join(example_dir,
以上就是Python怎样实现文件压缩?zipfile库应用实例的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1367377.html
微信扫一扫
支付宝扫一扫