python解压winrar,zip

from rarfile import RarFile

rar = RarFile(input_file)
rar.extractall(output_file)
rar.close()

注意,需要把WinRAR 所在的文件路径【C:\Program Files\WinRAR】放在系统环境变量当中(记得重启脚本编译器)。

# zip解压复制于 i止于至善 https://blog.csdn.net/qq_21076851/article/details/122752196

# 打开解压文件时,解决解压文件的中文乱码问题
def support_gbk(zip_file: ZipFile):
    name_to_info = zip_file.NameToInfo
    # copy map first
    for name, info in name_to_info.copy().items():
        real_name = name.encode('cp437').decode('gbk')
        if real_name != name:
            info.filename = real_name
            del name_to_info[name]
            name_to_info[real_name] = info
    return zip_file

# 打开解压文件时,解决解压文件的中文乱码问题
def extract_file(inputfile, output_dir):
    try:
        with support_gbk(ZipFile(inputfile)) as zfp:
            zfp.extractall(output_dir)
    except:
        rar = RarFile(inputfile)
        # 解压RAR文件
        rar.extractall(output_dir)
        # 关闭RARFile对象
        rar.close()
# 有用的方法

# 查看压缩包内名称
# zip
[i.encode('cp437').decode('gbk') for i in zip_file.namelist()]

# rar
rar_file.namelist()

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值