Python 3 中使用 zipfile 和 tarfile 模块实现压缩与解压:1. 用 zipfile.ZipFile 创建 ZIP 文件并添加文件;2. 调用 extractall 解压 ZIP 到指定目录;3. 使用 tarfile.open("w:gz") 打包为 TAR.GZ;4. 通过 "r:gz" 模式解压 TAR.GZ 文件,支持异常处理与路径安全控制。

Python 3 中常见的压缩与解包操作主要使用内置模块 zipfile(用于 .zip 文件)和 tarfile(用于 .tar、.tar.gz 等)。以下是常用写法示例:
1. 压缩文件(ZIP 格式)
将一个或多个文件打包成 .zip 文件:
import zipfile import osdef zip_files(zip_name, file_list): with zipfile.ZipFile(zip_name, 'w', zipfile.ZIP_DEFLATED) as zipf: for file in file_list: if os.path.exists(file): zipf.write(file, arcname=os.path.basename(file)) # 只保存文件名,不包含路径 else: print(f"文件不存在:{file}")
示例:压缩两个文件
files = ['file1.txt', 'file2.txt'] zip_files('output.zip', files)
2. 解压 ZIP 文件
将 .zip 文件解压到指定目录:
import zipfiledef unzip_file(zip_path, extract_to): with zipfile.ZipFile(zip_path, 'r') as zipf: zipf.extractall(extract_to) print(f"已解压到:{extract_to}")
示例:解压到 ./extracted/
unzip_file('output.zip', './extracted/')
立即学习“Python免费学习笔记(深入)”;
3. 压缩为 TAR.GZ 格式
使用 tarfile 打包并压缩(常用于 Linux 环境):
import tarfile import osdef make_tar_gz(output_filename, sources): with tarfile.open(output_filename, "w:gz") as tar: for src in sources: if os.path.exists(src): tar.add(src, arcname=os.path.basename(src)) else: print(f"路径不存在:{src}")
示例:打包两个文件为 compressed.tar.gz
make_tar_gz("compressed.tar.gz", ["file1.txt", "file2.txt"])
4. 解压 TAR.GZ 文件
解压 .tar.gz 文件:
import tarfiledef extract_tar_gz(tar_path, extract_to): with tarfile.open(tar_path, "r:gz") as tar: tar.extractall(path=extract_to) print(f"已解压到:{extract_to}")
示例
extract_tar_gz("compressed.tar.gz", "./extracted/")
补充说明
- 压缩时注意路径安全,避免绝对路径泄露目录结构。
- 可添加异常处理(try-except)增强健壮性。
- 支持的格式:
.zip、.tar、.tar.gz、.tar.bz2等,根据 mode 选择对应模式。
基本上就这些,按需选择合适格式即可。











