当前位置:首页 > Python > 正文

Python zipfile库详解(小白也能轻松掌握ZIP文件操作)

在日常开发中,我们经常需要处理压缩文件,比如打包日志、备份数据或分发资源。Python 提供了一个强大又易用的标准库——zipfile,专门用于读写 ZIP 格式的压缩文件。本文将带你从零开始,全面掌握 Python zipfile库 的基本用法,即使你是编程新手,也能轻松上手!

Python zipfile库详解(小白也能轻松掌握ZIP文件操作) zipfile库  ZIP文件操作 Python压缩解压 zipfile模块教程 第1张

一、什么是 zipfile 模块?

zipfile 是 Python 自带的标准库之一,无需额外安装,即可实现对 ZIP 文件的创建、读取、解压和信息查询等操作。它支持标准 ZIP 格式,也兼容加密 ZIP(需提供密码)。

二、创建 ZIP 压缩文件

要创建一个 ZIP 文件,我们使用 ZipFile 类,并以写入模式('w')打开文件。

import zipfilewith zipfile.ZipFile('example.zip', 'w') as zipf:    # 添加单个文件    zipf.write('document.txt')        # 添加多个文件(可使用循环)    files_to_add = ['image.jpg', 'data.csv']    for file in files_to_add:        zipf.write(file)  

注意:默认情况下,write() 方法会保留文件在磁盘上的完整路径。如果你只想保存文件名(不带目录),可以使用 arcname 参数:

zipf.write('path/to/document.txt', arcname='document.txt')  

三、解压 ZIP 文件

解压操作同样简单。使用 extract() 解压单个文件,或用 extractall() 解压全部内容。

import zipfilewith zipfile.ZipFile('example.zip', 'r') as zipf:    # 解压所有文件到指定目录    zipf.extractall('output_folder')        # 或只解压某个文件    zipf.extract('document.txt', path='output_folder')  

四、查看 ZIP 文件内容

在不解压的情况下,你可以列出 ZIP 文件中的所有成员:

import zipfilewith zipfile.ZipFile('example.zip', 'r') as zipf:    file_list = zipf.namelist()    print("ZIP 中包含的文件:", file_list)        # 获取每个文件的详细信息    for info in zipf.infolist():        print(info.filename, info.file_size, "bytes")  

五、常见应用场景

  • 自动打包项目源码进行分发
  • 批量下载并解压数据集(如 Kaggle 数据)
  • 日志归档与备份
  • Web 应用中生成用户可下载的压缩包

六、注意事项

- 使用 with 语句确保 ZIP 文件正确关闭,避免资源泄露。
- 如果 ZIP 文件受密码保护,可在 extract()extractall() 中传入 pwd 参数(需为 bytes 类型)。
- Python zipfile库 不支持 ZIP64 扩展的某些高级功能(如超大文件),但在常规场景下完全够用。

结语

通过本教程,你应该已经掌握了 Python压缩解压 的核心技能。无论是自动化脚本还是 Web 后端开发,zipfile模块教程 中介绍的方法都能助你高效处理 ZIP 文件。快去动手试试吧!

关键词回顾:Python zipfile库ZIP文件操作Python压缩解压zipfile模块教程