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


本文摘自php中文网,作者coldplay.xixi,侵删。

【相关学习推荐:python教程】

前言

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

一、用不腻的芷山库

1.安装库

pip安装:

1

pip install zisan

2.getFiles函数

函数调用:

1

2

3

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函数

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

代码如下:

1

2

3

4

import os

file_path = 'C:/Users/xxx/Desktop/2016/Annotations'

file_names = os.listdir(file_path)

print(file_names)

效果:


2.os.mkdir函数

代码:

1

2

3

import os

new_file_path = 'C:/Users/xxx/Destop/2016/newfile'

os.mkdir(new_file_path)

用于创建新文件夹

三、运用

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

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中remove函数的用法是什么?

什么是Python中的协程?(实例解析)

为什么Python

超简单的Python爬虫之网易云音乐的下载

Python制表符是什么

Python未来会进课本么

Python不支持的数据类型有哪些

Python递归算法很难吗,实例详解Python递归函数

更多相关阅读请进入《Python》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...