Python批量解压压缩包
import os
import zipfile
import shutil
def unzip_all_files(folder_path, output_folder, passwords=None):
# 检查输出文件夹是否存在,如果不存在则创建
if not os.path.exists(output_folder):
os.makedirs(output_folder)
# 遍历文件夹中的所有文件
for filename in os.listdir(folder_path):
file_path = os.path.join(folder_path, filename)
# 检查是否为压缩文件
if zipfile.is_zipfile(file_path):
# 打开压缩文件
with zipfile.ZipFile(file_path, 'r') as zip_ref:
# 尝试每个密码进行解压
for password in passwords:
try:
# 创建临时文件夹
tmp_folder = os.path.join(output_folder, 'tmp')
if not os.path.exists(tmp_folder):
os.makedirs(tmp_folder)
# 解压文件到临时文件夹
zip_ref.extractall(tmp_folder, pwd=password.encode())
# 遍历解压后的临时文件夹
for root, _, files in os.walk(tmp_folder):
for file in files:
src_file = os.path.join(root, file)
# 获取文件后缀
_, ext = os.path.splitext(file)
ext_folder = os.path.join(output_folder, ext[1:]) # 创建后缀文件夹
if not os.path.exists(ext_folder):
os.makedirs(ext_folder)
dst_file = os.path.join(ext_folder, file)
# 移动文件到后缀文件夹
shutil.move(src_file, dst_file)
# 删除临时文件夹
shutil.rmtree(tmp_folder)
print(f"解压文件 '{filename}' 到 '{output_folder}' 完成。")
break # 如果成功解压则退出循环
except RuntimeError as e:
print(f"尝试使用密码 '{password}' 解压文件 '{filename}' 失败:{e}")
# 指定文件夹路径和输出文件夹路径
folder_path = 'your_folder_path'
output_folder = 'output_folder_path'
# 定义密码列表
passwords = ['password1', 'password2', 'password3'] # 用实际密码替换
# 调用函数解压所有文件
unzip_all_files(folder_path, output_folder, passwords)
© 版权声明
- 本站永久网址:https://blog.ksmlc.cn/
- 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责
- 本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新
- 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长QQ:2760460838进行删除处理
THE END
暂无评论内容