根据各位大佬的经验本人稍作改动,以tar.gz压缩文件为例。
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: os.mkdir('J:/1'+"\\"+file_name) names = tar.getnames() # 循环解压缩,将压缩文件中的所有文件解压缩 for name in names: print(name) print(file_path) tar.extract(name, 'J:/1'+"\\"+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
原压缩文件夹以及压缩文件信息
解压到指定文件夹以及根据原压缩文件名新建文件夹并将解压文件存放到该子文件夹内。
使用方法:将该程序放在原压缩文件的目录运行即可。
修改需要解压的文件路径如下图所处位置:
需要解压其他类型的压缩文件需要修改tar…为其他类型
结束!
参考链接