如何使用Python批量解压多个.7z文件并输出到不同独立目录
问题原因
- 原有代码将所有压缩包的内容统一解压到同一个
E:/DATA/output目录,若不同压缩包内存在同名文件,后解压的文件会直接覆盖前序文件,就会出现「仅成功解压1个文件」的假象。 - 代码未按照需求为每个压缩包生成独立的output序列文件夹。
修正后代码
import os import glob from pyunpack import Archive os.chdir("E:/DATA/raw") # 初始化序号,从1开始对应output1 output_index = 1 for file in glob.glob("*myfile.7z"): print(f"正在处理:{file}") # 生成当前压缩包对应的输出文件夹路径 output_path = f"E:/DATA/output{output_index}" # 若文件夹不存在则自动创建,避免路径不存在报错 os.makedirs(output_path, exist_ok=True) # 解压到对应独立文件夹 Archive(file).extractall(output_path) # 序号自增,对应下一个压缩包的文件夹 output_index += 1
代码说明
- 新增
output_index变量计数,依次生成output1/output2/output3格式的文件夹路径 - 调用
os.makedirs自动创建输出文件夹,避免路径不存在导致的解压失败 - 每个压缩包的内容都解压到专属文件夹,不会出现文件覆盖问题
注意事项
- 运行前请确保已安装依赖库:执行
pip install patool pyunpack - 本地需要安装7-Zip解压工具,并将其安装目录添加到系统环境变量PATH中,否则pyunpack无法调用解压能力
内容的提问来源于stack exchange,提问作者Cheries
相关产品推荐
相关产品推荐

