经过到处整理尝试,终于整理出了快速打标签的方法。
如果有用记得点赞哦!
下面我将从两个类型进行讲述,分别是:文件夹遍历与文件遍历
1、文件夹遍历(每个文件夹中为同一类别)
直接贴代码
import os
def generate(dir, label):
files = os.listdir(dir) #os.listdir() 方法用于返回指定的文件夹包含的文件或文件夹的名字的列表。
files.sort() #对文件或文件夹进行排序
print('****************')
print('input :', dir)
print('start...')
listText = open('F:/learning/detection/Pytorch_Retinaface-master/engagement_dataset/all_list.txt', 'a+') #创建并打开一个txt文件,a+表示打开一个文件并追加内容
for file in files: #遍历文件夹中的文件
fileType = os.path.split(file) #os.path.split()返回文件的路径和文件名,【0】为路径,【1】为文件名
if fileType[1] == '.txt': #若文件名的后缀为txt,则继续遍历循环,否则退出循环
continue
name = folder+ '/' +file + ' ' + str(int(label)) + '\n' #name 为文件路径和文件名+空格+label+换行
listText.write(name) #在创建的txt文件中写入name
listText.close() #关闭txt文件
print('down!')
print('****************')
outer_path = 'F:\data' # 这里是你的数据路径
if __name__ == '__main__': #主函数
i = 0
folderlist = os.listdir(outer_path)# 列举文件夹
for folder in folderlist: #遍历文件夹中的文件夹(若engagement文件夹中存在txt或py文件,则后面会报错)
generate(os.path.join(outer_path, folder), i)#调用generate函数,函数中的参数为:(图片路径+文件夹名,标签号)
i += 1
2、文件遍历(每个文件为一个类别)
import os
outer_path = 'C:/Users/202208401/Desktop/TE_data/train'
if __name__ == '__main__': #主函数
i = 0
folderlist = os.listdir(outer_path) # 列举文件夹
for folder in folderlist: # 遍历文件夹中的文件夹(若engagement文件夹中存在txt或py文件,则后面会报错)
listText = open('C:/Users/202208401/Desktop/TE_data/train/all_list.txt', 'a+') # 创建并打开一个txt文件,a+表示打开一个文件并追加内容
name = folder + ' ' + str(int(i)) + '\n' # name 为文件路径和文件名+空格+label+换行
listText.write(name) # 在创建的txt文件中写入name
i += 1
其他形式的划分的话,可以自行进行理解修改,有什么问题也可以联系我,一起讨论哦
有用点赞!!!