python 递归获取子文件夹下的文件名 和文件类别标签

Kitty ·
更新时间:2024-11-10
· 940 次阅读

深度学习中,常常要获取文件夹下文件名和类别,为提取训练数据和测试数据准备
本文采用的一个文件下的40类数据做实验:
在这里插入图片描述
最后保存成如下文件形式: 文件路径+文件名+类别标签
在这里插入图片描述
具体代码如下:

# -*- coding: utf-8 -*- """ Created on Sat Mar 21 10:51:04 2020 filenameToCSV @author: administration """ import os import re allpath=[] allname=[] #获取文件列表 def getallfile(path): allfilelist=os.listdir(path) # 遍历该文件夹下的所有目录或者文件 for file in allfilelist: filepath=os.path.join(path,file) # 如果是文件夹,递归调用函数 if os.path.isdir(filepath): getallfile(filepath) # 如果不是文件夹,保存文件路径及文件名 elif os.path.isfile(filepath): allpath.append(filepath) allname.append(file) return allpath, allname def Test(): path="F:/project/2020/vs_project_2020/face_recog_opencv/source/facesdata/" #文件夹 outfile="save.txt"#保存文件名 #wildcard = ".pmg .txt .exe .dll .lib" file = open(outfile,"w") if not file: print ("cannot open the file %s for writing" % outfile) allpath, allname = getallfile(path) #获取文件目录 + 文件名 for name in allpath: st =re.findall(".*a/s(.*)\.*",name) #正则化匹配类别位置,获取图像类别 st = ''.join(st) loc = st.split("\\") loc = ''.join(loc[0])#图像类别 #print(loc) file.write(name+";" + loc)#写入文件中 if name != allpath[-1]: #最后一行不回车 file.write("\n") file.close() Test()

其中正则化提取图像的类别根据自己的需要进行修改即可


作者:GREAT



类别 递归 标签 Python

需要 登录 后方可回复, 如果你还没有账号请 注册新账号