套娃式文件夹如何通过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 相关文章推荐
打开电脑上的QQ的python代码
Feb 10 Python
Python学习笔记之os模块使用总结
Nov 03 Python
Python实现的最近最少使用算法
Jul 10 Python
python-opencv在有噪音的情况下提取图像的轮廓实例
Aug 30 Python
详解Python map函数及Python map()函数的用法
Nov 16 Python
使用Python OpenCV为CNN增加图像样本的实现
Jun 10 Python
Python中*args和**kwargs的区别详解
Sep 17 Python
python 申请内存空间,用于创建多维数组的实例
Dec 02 Python
python将图片转base64,实现前端显示
Jan 09 Python
Python图像处理二值化方法实例汇总
Jul 24 Python
Python经纬度坐标转换为距离及角度的实现
Nov 01 Python
详解Django自定义图片和文件上传路径(upload_to)的2种方式
Dec 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从csv文件读取数据并输出到网页的方法
2015/03/14 PHP
使用javascript获取flash加载的百分比的实现代码
2011/05/25 Javascript
javaScript使用EL表达式的几种方式
2014/05/27 Javascript
js/jquery判断浏览器的方法小结
2014/09/02 Javascript
使用不同的方法结合/合并两个JS数组
2014/09/18 Javascript
手机端 HTML5使用photoswipe.js仿微信朋友圈图片放大效果
2016/08/25 Javascript
Web 开发中Ajax的Session 超时处理方法
2017/01/19 Javascript
详解Angular.js数据绑定时自动转义html标签及内容
2017/03/30 Javascript
简单两步使用node发送qq邮件的方法
2019/03/01 Javascript
Vue 路由间跳转和新开窗口的方式(query、params)
2019/12/25 Javascript
vue搜索页开发实例代码详解(热门搜索,历史搜索,淘宝接口演示)
2020/04/11 Javascript
详解vue中v-model和v-bind绑定数据的异同
2020/08/10 Javascript
JS pushlet XMLAdapter适配器用法案例解析
2020/10/16 Javascript
用webAPI实现图片放大镜效果
2020/11/23 Javascript
跟老齐学Python之dict()的操作方法
2014/09/24 Python
Numpy数组的保存与读取方法
2018/04/04 Python
python使用Flask操作mysql实现登录功能
2018/05/14 Python
Django项目中包含多个应用时对url的配置方法
2018/05/30 Python
Python面向对象程序设计之类的定义与继承简单示例
2019/03/18 Python
Python字符串格式化输出代码实例
2019/11/22 Python
python3.6中anaconda安装sklearn踩坑实录
2020/07/28 Python
澳洲国民品牌乡村路折扣店:Country Road & Trenery Outlet
2018/04/19 全球购物
Dr. Martens马汀博士澳大利亚官网:马丁靴鼻祖
2019/07/02 全球购物
台湾7-ELEVEN线上购物中心:7-11
2021/01/21 全球购物
结构工程个人自荐信范文
2013/11/30 职场文书
大学新生欢迎词
2014/01/10 职场文书
广告设计应届生求职信
2014/03/01 职场文书
公司办公室岗位职责
2014/03/19 职场文书
新年寄语大全
2014/04/12 职场文书
数控技校生自我鉴定
2014/04/19 职场文书
2014年扫黄打非工作总结
2014/12/03 职场文书
入党积极分子党小组意见
2015/06/02 职场文书
辞职离别感言
2015/08/04 职场文书
演讲开头怎么书写?
2019/08/06 职场文书
用python画城市轮播地图
2021/05/28 Python
详解CSS3.0(Cascading Style Sheet) 层叠级联样式表
2021/07/16 HTML / CSS