系统环境:ubuntu18.04
语言:python3.6
目标:将目录下的多个.tar文件解压到另外一个目录下,同时以原压缩文件的名称来命名新文件夹存放解压后的文件。示例图如下:
代码为(上图知识测试,代码中的路径得替换成自己的路径):
# encoding:utf-8
import tarfile
from glob import glob
import os
from tqdm import tqdm
def un_tar(file_name):
file = os.path.basename(file_name)
save_file = os.path.splitext(file)[0]
tar = tarfile.open(file_name)
names = tar.getnames()
for name in tqdm(names):
new_save = "/".join(os.path.dirname(file_name).split("/")[:-1])
tar.extract(name, new_save + "/ImageNet_train/" + save_file)
tar.close()
if __name__ == "__main__":
floder = "/home/guest/YLxiaFiles/ImageNet/ILSVRC2012_img_train/*.tar"
record = open("record.txt", "w")
for i in glob(floder):
try:
un_tar(i)
except:
record.write(str(i) + "\n")
continue