批量解压一个文件夹下的所有压缩包

import glob
import os
import gzip
import tarfile
import zipfile
import rarfile 
import time

path = r'/root/projects/TransT/data/TrackingNet/'
file_lst = glob.glob(path + '/*')
# filename_lst = [os.path.basename(i) for i in file_lst]

# def ungz(filename):
#     filename = filename[:-3]
#     gz_file = gzip.GzipFile(filename)
#     with open(filename, "w+") as file:
#         file.write(gz_file.read())
#     return filename

# def untar(filename):
#     tar = tarfile.open(filename)
#     names = tar.getnames()
#     if not os.path.isdir(filename + "_dir"):
#         os.mkdir(filename + "_dir")
#     for name in names:
#         tar.extract(name, filename + "_dir/")
#     tar.close()

# def unzip(filename):
#     zip_file = zipfile.ZipFile(filename)
#     # 类似tar解除打包,建立文件夹存放解压的多个文件
#     if not os.path.isdir(filename + "_dir"):
#         os.mkdir(filename + "_dir")
#     for names in zip_file.namelist():
#         zip_file.extract(names, filename + "_dir/")
#     zip_file.close()  
def unzip(file):
    zip_file = zipfile.ZipFile(file)
    # 类似tar解除打包,建立文件夹存放解压的多个文件
    if not os.path.isdir(file):
        filename = os.path.splitext(file)[0]
        os.mkdir(filename)
    for names in zip_file.namelist():
        zip_file.extract(names, filename)
    zip_file.close()

# def unrar(filename):
#     rar = rarfile.RarFile(filename)
#     if not os.path.isdir(filename + "_dir"):
#         os.mkdir(filename + "_dir")
#     os.chdir(filename + "_dir")
#     rar.extractall()
#     rar.close()

def unzip_files():
    for file in file_final_lst :
        if '.' in file:
            suffix = file.split('.')[-1]
            # if suffix == 'gz':
            #     new_filename = ungz(filename)
            #     os.remove(filename)
            #     if new_filename.split('.')[-1] == 'tar':
            #         untar(new_filename)
            #         os.remove(new_filename)
            # if suffix == 'tar':
            #     untar(filename)
            #     os.remove(filename)
            if suffix == 'zip':
                unzip(file)
            # if suffix == 'rar':
            #     unrar(filename)
            #     os.remove(filename)

for file_st in file_lst: 
    name11=file_st.split('/')[-1]
    print(name11)
    print(file_st)
    file_final=os.path.join(file_st,name11,'zips')
    file_final_lst = glob.glob(file_final + '/*')
    unzip_files()
  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值