要解压的目录结构和要解压成的目录结构如下:

ILSVRC2012_img_train.tarn01440764.tarn01440764_18.JPEGn01440764_36.JPEG...n01443537.tarn01443537_2.JPEG...n01484850.tarn01484850_17.JPEG......
想解压成如下效果:
ILSVRC2012_img_train 文件夹n01440764        文件夹n01440764_18.JPEGn01440764_36.JPEG...n01443537        文件夹n01443537_2.JPEG...n01484850        文件夹n01484850_17.JPEG......

解压代码如下:

import os
import tarfilefile_path = './ILSVRC2012_img_train.tar'
file_name = file_path.split('/')[-1].split('.tar')[0]
os.mkdir(file_name) # 生成ILSVRC2012_img_train文件夹
tar = tarfile.open(file_path)
tar.extractall(file_name) # 第一层解压,将对ILSVRC2012_img_train.tar进行解压
sub_tar_file_name_list = tar.getnames() # 获取ILSVRC2012_img_train.tar中的子目录
sub_file_name_list = []
for sub_tar_file_name in sub_tar_file_name_list:sub_file_name_list.append(sub_tar_file_name.split('.tar')[0])
for dir_name in sub_file_name_list:os.mkdir(file_name+'/'+dir_name) # 生成不带.tar的目录
tar.close()for extract_name in sub_tar_file_name_list:sub_tar = tarfile.open('./'+file_name+'/'+extract_name)sub_tar.extractall('./'+file_name+'/'+extract_name.split('.tar')[0])  # 第二次解压 sub_tar.close()os.system('rm -rf '+'./'+file_name+'/'+extract_name) # 删除第一层解压后的第二层带.tar的文件
# os.system('rm -rf file_path) 如果想将ILSVRC2012_img_train.tar也删除了就使用这个

tarfile解压嵌套tar相关推荐

  1. LINUX:解压问题tar: Child returned status 1

    解压某个文件时 #tar -zxvf xxxxx.tar.gz 出现下面的错误提示: gzip: stdin: not in gzip format tar: Child returned statu ...

  2. Ubuntu下tar命令使用详解 .tar解压、.tar压缩

    1 tar参数选项 2 .tar压缩命令 3. tar解压缩命令 4 解压安装 5 . tar.bz2解压缩命令 6.Linux压缩和解压.bz2文件-bzip2 Linux tar 命令 在Linu ...

  3. Linux 命令————打包解压之tar

    Linux 命令----打包解压之tar *代表归档文件的名字 (1)文件打包 $tar-cvf *.tar filename -c –create 指导tar创建归档文件. -v–verbose(a ...

  4. linux+压缩率最高的命令,Linux压缩解压命令tar、tgz、tar.bz2压缩比率对比

    在Linux系统下用户最常用到的压缩解压命令是tar.tar.gz(tgz).tar.bz2,当然还有gz.zip.rar,下面将对tar.tar.gz(tgz).tar.bz2这三个命令进行压缩比率 ...

  5. tar.gz 解压出现 tar :This does not look like a tar archive 解决

    tar.gz 解压出现 tar :This does not look like a tar archive 解决 在安装hdf5时,使用tar 命令解压hdf5-1.8.18.tar.gz 出现: ...

  6. ActiveMQ的安装和启动 安装JAVA配置JAVA环境 下载ActiveMQ 解压压缩包 tar zxvf activemq-x.x.x-bin.tar.gz 至此,linux下Activ

    ActiveMQ的安装和启动 安装JAVA配置JAVA环境 下载ActiveMQ 解压压缩包  tar zxvf activemq-x.x.x-bin.tar.gz 至此,linux下ActiveMQ ...

  7. Linux世界的三种压缩解压方式,zip/unzip方式压缩解压、tar方式压缩解压、jar方式压缩解压暨shopt extglob反选示例

    Linux世界的三种压缩解压方式,zip/unzip方式压缩解压.tar方式压缩解压.jar方式压缩解压暨shopt extglob反选示例 zip/unzip方式.tar方式压缩解压是Linux中的 ...

  8. linux 解压为其他名字,Linux 命令————打包解压之tar

    Linux 命令----打包解压之tar *代表归档文件的名字 (1)文件打包 $tar-cvf *.tar filename -c –create 指导tar创建归档文件. -v–verbose(a ...

  9. linux解压批量tar文件内容,Linux命令:tar命令批量解压方法总结

    do tar xvf $tar; done for tar in *.tar.bz2; do tar xvf $tar; done 第二:用tar命令批量解压某个文件夹下所有的tar.gz文件 ls ...

最新文章

  1. Ubuntu 16.04下减小/释放/清理VirtualBox虚拟硬盘文件的大小
  2. softmax函数_干货 | 浅谈 Softmax 函数
  3. SpringBoot执行器端点Actuator Endpoint
  4. 小学生都开始学Python了,你还不抓紧提升技术?
  5. 陈睿:B站是中国最适合实现元宇宙概念的公司之一
  6. CppUnit源代码分析总结
  7. 概率论与数理统计 第四版 课后习题解析
  8. 世界名著100部简介
  9. html br 缩写,br开头的单词有哪些?-英语单词br-英语-罗酥遮同学
  10. 2.2磁盘IO网络IO工作机制
  11. 「镁客·请讲」周全:想做世界上没有的、比较酷的东西
  12. SPSS多元线性回归结果分析
  13. “好奇号”的火星发展观
  14. 表面等离子体共振新进展!
  15. 【Crypto】BUGKU-抄错的字符
  16. spotlight安装使用
  17. 如何使用AspNetPager分页控件对动态查询的结果进行分页
  18. axure添加下拉菜单联动
  19. C# Microsoft.Office.Interop.Owc11 导出excel文件
  20. 西安交通大学matlab实验报告,matlab实验报告.doc

热门文章

  1. promql中使用rate/irate等函数__name__丢失处理
  2. 基于c++11 的filesystem库
  3. Fastadmin插件开发流程简要记录
  4. 面经手册 · 第3篇《HashMap核心知识,扰动函数、负载因子、扩容链表拆分,深度学习》
  5. 2014年去哪网校园招聘
  6. PDF转HTML转换器哪个好用?快看看这里
  7. pythonUI自动化-控制已经打开的浏览器
  8. 管理类联考可以用计算机吗,管理类联考
  9. 论键盘上F9键的功能
  10. TypeError: Cannot read property ‘$createElement‘ of undefined