# 命名为untar.py
import tarfile
import os
# 获得目录下的所有文件
def get_file_name(file_dir):
L = []
for root, dirs, files in os.walk(file_dir):
for file in files:
# print(file)
L.append(file)
return L
# 解压缩模块
def un_tar(file_names, file_path):
file_name = file_names
print(file_path + "/" + file_name)
tar = tarfile.open(file_path + "/" + file_name)
# 更改新创建的文件夹的名字
if file_name.find(".tar.gz") != -1:
file_name = file_name.replace(".tar.gz", "")
else:
pass
print(file_name)
if os.path.isdir(file_name):
pass
else:
# /data/datacube_data/original_data/gf1wfv_china725目录为现在.tar.gz数据存放目录
os.mkdir('/data/datacube_data/original_data/gf1wfv_china725'+"/"+file_name)
names = tar.getnames()
# 循环解压缩,将压缩文件中的所有文件解压缩
for name in names:
print(name)
print(file_path)
tar.extract(name, '/data/datacube_data/original_data/gf1wfv_china725'+"/"+file_name)
return
# TarFile.getnames()
# Return the members as a list of their names. It has the same order as the list returned by getmembers().
# 获得当前的文件目录
file_dir = os.getcwd()
print(file_dir)
files = []
files = get_file_name(file_dir)
print("get all file of the dir:")
print(files)
# 将.tar.gz后缀的文件解压缩
print("get tar_gz file and process")
for My_file_name in files:
if My_file_name.find(".tar.gz") != -1:
print(My_file_name)
un_tar(My_file_name, file_dir)
else:
pass
执行命令:python untar.py
参考: