Python处理压缩文件主要用zipfile和tarfile标准库,支持ZIP、GZIP、BZ2、XZ等格式,但不支持RAR、7z;zipfile适合跨平台小文件打包,tarfile适合Linux场景并保留权限等元信息。
Python 中处理压缩文件主要靠 zipfile 和 tarfile 两个标准库,它们无需额外安装,覆盖 ZIP、GZIP、BZ2、XZ 等常见格式,但不支持 RAR、7z 等需第三方库的格式。
zipfile 支持创建、解压、查看、追加 ZIP 文件,适合处理单个压缩包或批量打包小文件。
ZipFile.extractall() 一键解到指定目录,路径不存在会自动创建.namelist() 获取所有成员名,.getinfo(name) 查大小、修改时间等元数据'w' 模式打开,用 .write() 添加本地文件,或 .writestr() 直接写入字符串内容(如生成配置文件)ZipFile(..., 'r', encoding='utf-8')
tarfile 更适合 Linux/Unix 场景,能完整保留权限、用户组、软硬链接、修改时间等元信息。
.tar.gz → gzip,.tar.xz → xz),也可显式指定 mo
de='r:gz'
tar.getnames() 检查文件名,过滤含 '../' 或绝对路径的项,再调用 extractall()
.add() 可递归加入整个目录;若只加特定文件,可用 .addfile() 配合 TarInfo 手动构造条目实际使用中容易遇到编码错乱、权限丢失、大文件卡顿等问题。
立即学习“Python免费学习笔记(深入)”;
encoding='gbk'(旧版 Windows)或 encoding='utf-8'(现代系统+正确打包)extractall() 后手动 os.chmod(),或用 tar.extract() 单个处理并设 tarinfo.mode
extractall(),改用循环 extract() 或流式读取内容(read() + 解码)处理单个文件pyminizip 或 zipfile 配合 pycryptodome 自行实现取决于目标平台和需求重点。
zipfile 接口简洁)tarfile 更可靠)setuptools 或 build 工具生成 wheel/sdist,而非手写压缩逻辑
# linux
# python
# windows
# 编码
# 工具
# mac
# 中文乱码
# unix
# macos
# 解压
# win
# 解决方法
相关栏目:
【
Google疑问12 】
【
Facebook疑问10 】
【
网络优化76771 】
【
技术知识130152 】
【
IDC云计算60162 】
【
营销推广131313 】
【
AI优化88182 】
【
百度推广37138 】
【
网站推荐60173 】
【
精选阅读31334 】
相关推荐:
Windows 11怎么设置默认解压软件_Windows 11为ZIP/RAR文件指定默认打开程序
c++中的CRTP是什么 c++奇异递归模板模式【进阶】
c# await 一个已经完成的Task会发生什么
Win11怎么更改盘符_Win11磁盘管理修改驱动器号【步骤】
Win11蓝牙开关不见了怎么办_Win11蓝牙驱动丢失修复教程【方法】
c++ namespace命名空间用法_c++避免命名冲突
Win11怎么退出高对比度模式_Win11取消反色显示快捷键【修复】
LINUX的SELinux是什么_详解LINUX强制访问控制系统的入门与配置
c++的STL算法库find怎么用 在容器中查找指定元素【实用教程】
短链接怎么用php还原_从基础原理到代码实现教学【详解】
Mac如何修改Hosts文件?(本地开发与屏蔽网站)
Windows11怎么自定义任务栏_Windows11任务栏自定义教程【步骤】
Windows10怎么用“讲述人”读屏辅助 Windows10轻松使用开启讲述人朗读屏幕文字帮助视障用户【教程】
如何在JavaScript中动态拼接PHP的base_url与前端变量
c++协程和线程的区别 c++异步编程模型对比【核心】
Windows电脑键盘突然失灵怎么办?(驱动与硬件排查)
PyTorch DDP 多进程训练在 Kaggle 笔记本中的正确启动方式
零基础学会Python自动化办公_高效处理Excel与PDF文档
Win11怎么解压RAR文件 Win11自带解压功能使用方法
Python多线程使用规范_线程安全解析【教程】
Windows10怎样设置家长控制_Windows10家长控制设置方法【指南】
如何使用Golang实现RPC序列化与反序列化_Golang RPC数据编码与解码方法
Win11如何设置文件关联 Win11修改特定文件类型的默认打开程序【详解】
PHP怎么接收URL中的锚点参数_获取#后面参数值的技巧【详解】
如何诊断并终止卡死的 multiprocessing 子进程
Go语言中slice追加操作的底层共享机制详解
Go语言中正确反序列化多个同级XML元素为结构体切片的方法
Win11怎么关闭OneDrive同步_Win11取消自动备份文件【教程】
Win11怎么关闭定位服务_保护Win11位置隐私设置指南【详解】
php485能和物联网模块通信吗_php485对接NB-IoT模块实例【说明】
Win11色盲模式怎么开_Win11屏幕颜色滤镜设置【关怀】
如何使用Golang反射创建map对象_动态生成键值映射
如何使用Golang实现文件加密_Golang crypto 文件加密示例
如何在Golang中处理URL参数_Golang URL参数解析与路由映射方法
Django密码修改后会话失效的解决方案
Windows10如何查看蓝屏日志_Win10使用事件查看器分析Dump文件
Win11如何设置开机问候语 Win11修改登录界面提示【技巧】
如何处理“XML格式不正确”错误 常见XML well-formed问题解决方法
如何关闭Win10自动更新更新_Win10系统自动更新双重关闭技巧
如何在Golang中处理模块冲突_解决依赖版本不兼容问题
Win11怎么设置环境变量_Win11配置Path路径变量【详解】
如何使用Golang搭建Web开发环境_快速启动HTTP服务
PythonPandas数据分析项目教程_时间序列透视表应用
Python lxml的etree和ElementTree有什么区别
win11 OneDrive怎么彻底关闭 Win11禁用并卸载OneDrive教程【分享】
Win11怎么设置任务栏图标大小_Windows11注册表TaskbarSi修改
php8.4如何实现队列任务_php8.4redis队列简单实现方法【教程】
Win11截图快捷键是什么_Win11自带截图工具使用技巧【汇总】
Win10怎么创建桌面快捷方式 Win10为应用创建快捷方式【步骤】
php高频调试功能有哪些_php常用调试函数与工具汇总【解答】
2026-01-03
致胜网络推广营销网专注海外推广十年,是谷歌推广.Facebook广告全球合作伙伴,我们精英化的技术团队为企业提供谷歌海外推广+外贸网站建设+网站维护运营+Google SEO优化+社交营销为您提供一站式海外营销服务。