Python zipfile库:ZIP文件处理完全指南

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值