Python 使用 WinRAR 解压 .7z 文件

import os
import subprocess

def extract_7z_files_with_winrar(folder_path, output_folder):
    # 确保输出文件夹存在
    if not os.path.exists(output_folder):
        os.makedirs(output_folder)

    # 遍历指定文件夹中的所有文件
    for root, dirs, files in os.walk(folder_path):
        for file in files:
            if file.endswith('.7z'):
                file_path = os.path.join(root, file)
                print(f"正在解压: {file_path}")
                
                # 创建每个压缩包对应的子文件夹
                sub_output_folder = os.path.join(output_folder, os.path.splitext(file)[0])
                if not os.path.exists(sub_output_folder):
                    os.makedirs(sub_output_folder)
                
                # 构建 winrar 命令
                rar_command = f'"C:\\Program Files\\WinRAR\\WinRAR.exe" x "{file_path}" "{sub_output_folder}"'
                
                # 执行 winrar 命令
                try:
                    result = subprocess.run(rar_command, shell=True, check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
                    print(result.stdout.decode('gbk'))  # 使用 gbk 解码以适应中文字符
                    print(f"已解压到: {sub_output_folder}")
                except subprocess.CalledProcessError as e:
                    print(f"解压失败: {e.stderr.decode('gbk')}")  # 使用 gbk 解码以适应中文字符

if __name__ == "__main__":
    folder_path = r'C:\Users\xxx\AppData\Local\Temp'  # 替换为您的文件夹路径
    output_folder = r'C:\path\to\extracted_files'     # 替换为您希望存放解压文件的文件夹路径
    
    extract_7z_files_with_winrar(folder_path, output_folder)



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值