套娃式文件夹如何通过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 相关文章推荐
通过mod_python配置运行在Apache上的Django框架
Jul 22 Python
Python中常见的数据类型小结
Aug 29 Python
使用50行Python代码从零开始实现一个AI平衡小游戏
Nov 21 Python
python3实现表白神器
Apr 09 Python
windows10下安装TensorFlow Object Detection API的步骤
Jun 13 Python
Django Rest framework权限的详细用法
Jul 25 Python
Jupyter 无法下载文件夹如何实现曲线救国
Apr 22 Python
python转化excel数字日期为标准日期操作
Jul 14 Python
python用Configobj模块读取配置文件
Sep 26 Python
Python实现PS滤镜中的USM锐化效果
Dec 04 Python
python UDF 实现对csv批量md5加密操作
Jan 01 Python
使用python求解迷宫问题的三种实现方法
Mar 17 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
用JavaScript脚本实现Web页面信息交互
2006/12/21 Javascript
关于Javascript 的 prototype问题。
2007/01/03 Javascript
jQuery 源码分析笔记(4) Ready函数
2011/06/02 Javascript
jquery 实现checkbox全选,反选,全不选等功能代码(奇数)
2012/10/24 Javascript
js实现将选中内容分享到新浪或腾讯微博
2015/12/16 Javascript
jQuery打字效果实现方法(附demo源码下载)
2015/12/18 Javascript
AngularJS Ajax详解及示例代码
2016/08/17 Javascript
一次围绕setTimeout的前端面试经验分享
2017/06/15 Javascript
jQuery实现的3D版图片轮播示例【滑动轮播】
2019/01/18 jQuery
深入了解JavaScript 私有化
2019/05/30 Javascript
vue+element项目中过滤输入框特殊字符小结
2019/08/07 Javascript
VUE 自定义组件模板的方法详解
2019/08/30 Javascript
vue在App.vue文件中监听路由变化刷新页面操作
2020/08/14 Javascript
python生成指定尺寸缩略图的示例
2014/05/07 Python
python实现在无须过多援引的情况下创建字典的方法
2014/09/25 Python
Python中不同进制互相转换(二进制、八进制、十进制和十六进制)
2015/04/05 Python
python删除过期文件的方法
2015/05/29 Python
浅谈Python的异常处理
2016/06/19 Python
python 实现自动远程登陆scp文件实例代码
2017/03/13 Python
Django开发中的日志输出的方法
2018/07/02 Python
python引用(import)某个模块提示没找到对应模块的解决方法
2019/01/19 Python
浅谈Python3 numpy.ptp()最大值与最小值的差
2019/08/24 Python
python中使用asyncio实现异步IO实例分析
2021/02/26 Python
实习销售业务员自我鉴定
2013/09/21 职场文书
初中生个人学习的自我评价
2013/12/04 职场文书
最新的咖啡店创业计划书
2013/12/30 职场文书
绩效考核实施方案
2014/03/18 职场文书
成绩单家长评语大全
2014/04/16 职场文书
颐和园导游词400字
2015/01/30 职场文书
2015年出纳年终工作总结
2015/05/14 职场文书
2016圣诞节贺卡寄语
2015/12/07 职场文书
导游词之韩国济州岛
2019/10/28 职场文书
Python基础之pandas数据合并
2021/04/27 Python
Python数据类型最全知识总结
2021/05/31 Python
Python OpenCV实现图像模板匹配详解
2022/04/07 Python
纯CSS打字动画的实现示例
2022/08/05 HTML / CSS