Python zipfile库:ZIP文件处理完全指南
zipfile 是 Python 标准库中用于处理 ZIP 格式压缩文件的模块,支持创建、读取、写入、解压 ZIP 文件,以及获取 ZIP 内部文件信息等功能。无需额外安装,开箱即用,是处理压缩文件的核心工具。
一、核心概念与常用类
1. 主要类
zipfile.ZipFile:核心类,用于创建和操作 ZIP 文件(打开、读取、写入、关闭等)。zipfile.ZipInfo:存储 ZIP 文件中单个文件的元信息(文件名、大小、修改时间等)。
2. 常用模式
ZipFile 打开文件时需指定模式,常用模式:
'r':只读模式(默认),打开已存在的 ZIP 文件。'w':写入模式,创建新 ZIP 文件(覆盖已有文件)。'a':追加模式,向已存在的 ZIP 文件添加新文件。'x':独占创建模式,若文件已存在则报错。
3. 压缩方法
支持的压缩算法:
ZIP_STORED:无压缩(仅存储,速度快)。ZIP_DEFLATED:使用 DEFLATED 算法压缩(最常用,需 zlib 支持,Python 通常默认包含)。
二、基本操作示例
1. 读取 ZIP 文件内容
查看 ZIP 文件中的文件列表、元信息(大小、修改时间等)。
import zipfile
# 打开ZIP文件(只读模式)
with zipfile.ZipFile('example.zip', 'r') as zf:
# 1. 获取所有文件列表
print("ZIP文件中的所有文件:")
for file_name in zf.namelist():
print(f"- {
file_name}")
# 2. 获取单个文件的详细信息(ZipInfo对象)
if zf.namelist():
first_file = zf.namelist()[0]
info = zf.getinfo(first_file)
print(f"\n{
first_file} 的详细信息:")
print(f" 原始大小:{
info.file_size} 字节")
print(f" 压缩后大小:{
info.compress_size} 字节")
print(f" 修改时间:{
info.date_time}") # (年, 月, 日, 时, 分, 秒)
print(f" 压缩方法:{
info.compress_type}") # 0=无压缩,8=DEFLATED
2. 解压 ZIP 文件
支持解压单个文件或全部文件到指定目录。
import zipfile

最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



