套娃式文件夹如何通过Python批量处理


Posted in Python onAugust 23, 2020

前言

在我对项目组的一些训练图像进行预处理的时候,发现处理的图像是分好了类,在文件夹里的文件夹里,套娃式存储的,所以对我批处理,以及按原文件夹规则进行存储的时候,就会造成很大困扰
但通过下面几个函数的结合,帮我顺利的完成了一系列的预处理。

一、用不腻的芷山库

1.安装库

pip安装:

pip install zisan

2.getFiles函数

函数调用:

import zisan.FileTools as zf
file_path = 'C:/Users/xxx/Desktop/2016/Annotations'
whole_file = zf.getFiles(file_path)

图片存储在 :件夹2016 -> 文件夹Annotations ->子文件夹 -> 00000.png
通过getFiles函数,可以将Annotations中的所有文件夹里的所有图片路径调出来

也就是说,getFiles函数是将文件夹里面的所有文件路径调出来,不管中间有无子文件夹

二、其他函数

1.os.listdir函数

该函数调用后会返回路径底下文件夹的名称,以字符串的形式储存在列表里

代码如下:

import os
file_path = 'C:/Users/xxx/Desktop/2016/Annotations'
file_names = os.listdir(file_path)
print(file_names)

效果:

套娃式文件夹如何通过Python批量处理

套娃式文件夹如何通过Python批量处理

2.os.mkdir函数

代码:

import os
new_file_path = 'C:/Users/xxx/Destop/2016/newfile'
os.mkdir(new_file_path)

用于创建新文件夹

三、运用

要求:处理Annotations文件夹中的每个子文件夹中的图片,并按原本的规则存储在newfile新文件夹里的相应位置,命名规则如00000.jpg

import zisan.FileTools as zf
import os
import cv2
from skimage import io

file_path = 'C:/Users/xxx/Desktop/2016/Annotations'
new_file_path = 'C:/Users/xxx/Destop/2016/newfile'

file_names = os.listdir(file_path)
#获取Annotations文件夹的子文件夹名称

for i in file_names: #遍历每个子文件夹名称
  Index = 0
  file_name = file_path + '/' + i #巧妙运用+号得到改子文件夹的路径
  os.mkdir(new_file_path + '/' + i) #在newfile里创建一个与子文件夹名称相同的文件夹
  whole_pic = zf.getFiles(file_name) #用getFiles函数读取子文件夹内的图片路径
  for f in whole_pic:
    msk = io.imread(f)
		msk=cv2.cvtColor(msk,cv2.COLOR_RGBA2GRAY)
    msk[np.where(msk!=0)]=255
    io.imsave(new_file_path + '/' + i + '/' + str("%05d" % Index) + '.jpg' , msk)
     #处理命名可直接+'.jpg'让其以jepg形式存储
    Index += 1

这就是我解决文件夹处理问题的基本思路和流程,各个函数可以搭配使用,放入循环外或内根据具体要求都有着不同的效果。

到此这篇关于套娃式文件夹如何通过Python批量处理的文章就介绍到这了,更多相关Python 批量处理文件内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
使用python实现正则匹配检索远端FTP目录下的文件
Mar 25 Python
python学习笔记之调用eval函数出现invalid syntax错误问题
Oct 18 Python
关于Python面向对象编程的知识点总结
Feb 14 Python
基于Python os模块常用命令介绍
Nov 03 Python
Python中生成器和迭代器的区别详解
Feb 10 Python
使用Flask集成bootstrap的方法
Jul 24 Python
Django migrations 默认目录修改的方法教程
Sep 28 Python
详解Django配置优化方法
Nov 18 Python
如何使用Python脚本实现文件拷贝
Nov 20 Python
python开发入门——set的使用
Sep 03 Python
Python函数中的不定长参数相关知识总结
Jun 24 Python
Python 使用 Frame tkraise() 方法在 Tkinter 应用程序中的Frame之间切换
Apr 24 Python
python进度条显示-tqmd模块的实现示例
Aug 23 #Python
基于python tkinter的点名小程序功能的实例代码
Aug 22 #Python
python+selenium 简易地疫情信息自动打卡签到功能的实现代码
Aug 22 #Python
python进度条显示之tqmd模块
Aug 22 #Python
python 常见的排序算法实现汇总
Aug 21 #Python
Python制作数据预测集成工具(值得收藏)
Aug 21 #Python
简述 Python 的类和对象
Aug 21 #Python
You might like
phpMyAdmin链接MySql错误 个人解决方案
2009/12/28 PHP
PHP使用json_encode函数时不转义中文的解决方法
2014/11/12 PHP
php使用simplexml_load_file加载XML文件并显示XML的方法
2015/03/19 PHP
js中scrollHeight,scrollWidth,scrollLeft,scrolltop等差别介绍
2012/05/16 Javascript
jquery实现兼容浏览器的图片上传本地预览功能
2013/10/14 Javascript
JavaScript实现向setTimeout执行代码传递参数的方法
2015/04/16 Javascript
利用JavaScript的AngularJS库制作电子名片的方法
2015/06/18 Javascript
理解javascript异步编程
2016/01/27 Javascript
Bootstrap模块dropdown实现下拉框响应
2016/05/22 Javascript
Google 爬虫如何抓取 JavaScript 的内容
2017/04/07 Javascript
vue实现element-ui对话框可拖拽功能
2018/08/17 Javascript
JS遍历JSON数组及获取JSON数组长度操作示例【测试可用】
2018/12/12 Javascript
vue-以文件流-blob-的形式-下载-导出文件操作
2020/08/07 Javascript
Python选择排序、冒泡排序、合并排序代码实例
2015/04/10 Python
pandas参数设置的实用小技巧
2020/08/23 Python
Django多数据库联用实现方法解析
2020/11/12 Python
python 实现围棋游戏(纯tkinter gui)
2020/11/13 Python
Python 排序最长英文单词链(列表中前一个单词末字母是下一个单词的首字母)
2020/12/14 Python
基于css3仿造window7的开始菜单
2010/06/17 HTML / CSS
美国床垫和床上用品公司:Nest Bedding
2017/06/12 全球购物
美国女士内衣在线折扣商店:One Hanes Place
2019/03/24 全球购物
Fanatics法国官网:美国体育电商
2019/08/27 全球购物
SQL数据库笔试题
2016/03/08 面试题
企业宣传方案
2014/03/04 职场文书
搞笑创意广告语
2014/03/17 职场文书
学习雷锋寄语大全
2014/04/11 职场文书
党的群众路线教育实践活动对照检查材料(四风)
2014/09/27 职场文书
机票销售员态度不好检讨书
2014/09/27 职场文书
2015年五一劳动节活动总结
2015/02/09 职场文书
幼儿园感恩节活动总结
2015/03/24 职场文书
英文辞职信范文
2015/05/13 职场文书
运动员加油词
2015/07/18 职场文书
聘任书范文大全
2015/09/21 职场文书
《艾尔登法环》1.03.3补丁上线 碎星伤害调整
2022/04/07 其他游戏
Python实现视频自动打码的示例代码
2022/04/08 Python
海康机器人重磅发布全新算法开发平台VM4.2
2022/04/21 数码科技