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

深度学习中,常常要获取文件夹下文件名和类别,为提取训练数据和测试数据准备
本文采用的一个文件下的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"#保存文件名
 
    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()

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

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值