套娃式文件夹如何通过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获取指定路径下所有指定后缀文件的方法
May 26 Python
python机器学习案例教程——K最近邻算法的实现
Dec 28 Python
python 读取文件并替换字段的实例
Jul 12 Python
Tensorflow 同时载入多个模型的实例讲解
Jul 27 Python
Django跨域请求CSRF的方法示例
Nov 11 Python
浅谈Pandas:Series和DataFrame间的算术元素
Dec 22 Python
使用python实现滑动验证码功能
Aug 05 Python
python+rsync精确同步指定格式文件
Aug 29 Python
python+selenium+Chrome options参数的使用
Mar 18 Python
Keras框架中的epoch、bacth、batch size、iteration使用介绍
Jun 10 Python
python闭包与引用以及需要注意的陷阱
Sep 18 Python
python plt.plot bar 如何设置绘图尺寸大小
Jun 01 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
php解压缩zip和rar压缩包文件的方法
2019/07/10 PHP
thinkphp框架使用JWTtoken的方法详解
2019/10/10 PHP
超级强大的表单验证
2006/06/26 Javascript
ASP小贴士/ASP Tips javascript tips可以当桌面
2009/12/10 Javascript
javascript实现面向对象类的功能书写技巧
2010/03/07 Javascript
Wordpress ThickBox 添加“查看原图”效果代码
2010/12/11 Javascript
jquery 之 $().hover(func1, funct2)使用方法
2012/06/14 Javascript
jQuery简易图片放大特效示例代码
2014/06/09 Javascript
JavaScript实现基于十进制的四舍五入实例
2015/07/17 Javascript
基于javascript实现全国省市二级联动下拉选择菜单
2016/01/28 Javascript
解析AngularJS中get请求URL出现的跨域问题
2016/12/01 Javascript
微信小程序多张图片上传功能
2017/06/07 Javascript
常见的浏览器Hack技巧整理
2017/06/29 Javascript
js解决软键盘遮挡输入框的问题分享
2017/12/19 Javascript
javascript实现倒计时效果
2020/02/17 Javascript
vue离开当前页面触发的函数代码
2020/09/01 Javascript
35个Python编程小技巧
2014/04/01 Python
Python实现简单的可逆加密程序实例
2015/03/05 Python
使用Python生成url短链接的方法
2015/05/04 Python
Python中字符串的处理技巧分享
2016/09/17 Python
利用Python爬取微博数据生成词云图片实例代码
2017/08/31 Python
对python 操作solr索引数据的实例详解
2018/12/07 Python
python3.6+selenium实现操作Frame中的页面元素
2019/07/16 Python
python实现多进程通信实例分析
2019/09/01 Python
弄懂这56个Python使用技巧(轻松掌握Python高效开发)
2019/09/18 Python
python爬虫多次请求超时的几种重试方法(6种)
2020/12/01 Python
css3动画效果小结(推荐)
2016/07/25 HTML / CSS
美国女鞋品牌:naturalizer(娜然)
2016/08/01 全球购物
英国领先的餐饮折扣俱乐部:Gourmet Society
2020/07/26 全球购物
屈臣氏泰国官网:Watsons TH
2021/02/23 全球购物
快餐店的创业计划书范文
2014/01/29 职场文书
企业消防安全制度
2014/02/02 职场文书
奉献爱心演讲稿
2014/09/04 职场文书
乐山大佛导游词
2015/02/02 职场文书
火烧圆明园的观后感
2015/06/03 职场文书
MySQL 数据恢复的多种方法汇总
2021/06/21 MySQL