python解压文件(自用)

解压rar文件可能会报错

下载unrar.exe,放在py文件同级目录解决报错问题

unrar.exe链接:https://pan.baidu.com/s/1jov4Qss3OuZPC3jGAyVx3A 
提取码:kn7t

import os
# import shutil
import zipfile,tarfile,gzip,rarfile

def unpack_file(root,f,destination_path,file_flag=".zip"):
    file_name=os.path.join(root, f);
    if file_flag=='.zip':
        archive = zipfile.ZipFile(file_name,mode='r')
        for file in archive.namelist():
            archive.extract(file, destination_path);
    elif file_flag=='.rar':
        archive = rarfile.RarFile(file_name,'r');  #需要解压的文件
        for file in archive.namelist():
            archive.extract(file, destination_path);
        # archive.extractall(destination_path);
    elif file_flag=='.gz':
        destination_path=os.path.join(destination_path, f)
        f_name = destination_path.replace(".gz", "");
        g_file = gzip.GzipFile(file_name);
        open(f_name, "wb+").write(g_file.read());
        g_file.close(); #关闭gzip对象
    elif file_flag=='.tar':
        archive = tarfile.open(file_name,mode='r');
        for file in archive.getnames():
            archive.extract(file, destination_path);
        
if __name__ == '__main__':
    file_flag = '.rar'   #修改需解压的格式 例如:.tar  .zip  .rar  .gz
    rootdir=r"D:\AppData\PyCode\test";#需要解压的文件地址
    new_file_zip=rf"{rootdir}\unpack";#解压后文件地址
    os.makedirs(new_file_zip,exist_ok=True); #创建目录存放文件
    
    for root, dirs, files in os.walk(rootdir,topdown=True):#遍历文件
        for f in files:
            if f.endswith(file_flag): #判断文件后缀是否符合
                    unpack_file(root,f,new_file_zip,file_flag);
        break;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值