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

要在Python里实现文件压缩,尤其是处理常见的zip格式,
zipfile
说起文件压缩,我们通常想到的就是把一堆散乱的文件或者一个文件夹打包成一个更小的、方便传输和存储的档案。Python的
zipfile
最基础的用法,比如把一个文件压缩进去:
立即学习“Python免费学习笔记(深入)”;
import zipfile
import 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 zipfile
import os
def 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库应用实例的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号