套娃式文件夹如何通过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中有趣在__call__函数
Jun 21 Python
python开发之字符串string操作方法实例详解
Nov 12 Python
数据清洗--DataFrame中的空值处理方法
Jul 03 Python
对python读取zip压缩文件里面的csv数据实例详解
Feb 08 Python
Python处理时间日期坐标轴过程详解
Jun 25 Python
Django的models模型的具体使用
Jul 15 Python
python 消除 futureWarning问题的解决
Dec 25 Python
python实现ftp文件传输系统(案例分析)
Mar 20 Python
Jupyter Notebook输出矢量图实例
Apr 14 Python
python json.dumps() json.dump()的区别详解
Jul 14 Python
python 如何实现遗传算法
Sep 22 Python
Python环境配置实现pip加速过程解析
Nov 27 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上传文件的增强函数
2010/07/21 PHP
FirePHP 推荐一款PHP调试工具
2011/04/23 PHP
ThinkPHP与PHPExcel冲突解决方法
2011/08/08 PHP
PHP文件上传、客户端和服务器端加限制、抓取错误信息、完整步骤解析
2017/01/12 PHP
PHP单例模式数据库连接类与页面静态化实现方法
2019/03/20 PHP
Laravel 已登陆用户再次查看登陆页面的自动跳转设置方法
2019/09/30 PHP
javascript面向对象编程(一) 实例代码
2010/06/25 Javascript
理解Javascript_01_理解内存分配原理分析
2010/10/11 Javascript
基于node.js的快速开发透明代理
2010/12/25 Javascript
jquery 查找iframe父级页面元素的实现代码
2011/08/28 Javascript
javascript中通过arguments参数伪装方法重载
2014/10/08 Javascript
在js里怎么实现Xcode里的callFuncN方法(详解)
2016/11/05 Javascript
微信小程序中hidden不生效原因的解决办法
2017/04/26 Javascript
vue省市区三联动下拉选择组件的实现
2017/04/28 Javascript
微信小程序手机号码验证功能的实例代码
2018/08/28 Javascript
node koa2 ssr项目搭建的方法步骤
2020/12/11 Javascript
Python cv2 图像自适应灰度直方图均衡化处理方法
2018/12/07 Python
python opencv摄像头的简单应用
2019/06/06 Python
Python何时应该使用Lambda函数
2019/07/02 Python
Python获取一个用户名的组ID过程解析
2019/09/03 Python
python groupby 函数 as_index详解
2019/12/16 Python
python列表推导和生成器表达式知识点总结
2020/01/10 Python
Tensorflow设置显存自适应,显存比例的操作
2020/02/03 Python
Numpy(Pandas)删除全为零的列的方法
2020/09/11 Python
CSS3中使用RGBA设置透明度的示例
2015/08/04 HTML / CSS
英国顶级珠宝品牌之家:John Greed
2018/06/09 全球购物
香港演唱会订票网站:StubHub香港
2019/10/10 全球购物
美国环保妈妈、儿童和婴儿用品购物网站:The Tot
2019/11/24 全球购物
若干个Java基础面试题
2015/05/19 面试题
AJAX检测用户名是否存在的方法
2021/03/24 Javascript
预备党员政审材料
2014/02/04 职场文书
关爱女孩行动实施方案
2014/03/13 职场文书
信用卡结清证明怎么写
2014/09/13 职场文书
大学生见习报告总结
2014/11/04 职场文书
水电工程师岗位职责
2015/02/13 职场文书
Java字符缓冲流BufferedWriter
2022/04/09 Java/Android