训练数据前要进行图片标注,labelimg标注后会生成xml文件,数据很多的话,手动统计标注的标签名太麻烦了,所以写了一个小程序,其实很简单,初次接触python记录下。
总体思路:定义一个list用来存放类名,打开存放所有xml文件的文件夹,然后遍历打开xml文件,找到<name>标签,获取标签对之间的数据,如果list中不存在则存入,最后打印list
具体代码:
#coding=utf-8
import xml.dom.minidom
import os,sys
rootdir = 'D:\xmlfile'#存有xml的文件夹路径
list = os.listdir(rootdir) #列出文件夹下所有的目录与文件
## 空列表
classes_list = []
for i in range(0,len(list)):
path = os.path.join(rootdir,list[i])
if os.path.isfile(path):
#打开xml文档
dom = xml.dom.minidom.parse(path)
#得到文档元素对象
root = dom.documentElement
cc=dom.getElementsByTagName('name')
for i in range(len(cc)):
c1 = cc[i]
#列表中不存在则存入列表
if classes_list.count(c1.firstChild.data)==0:
classes_list.append(c1.firstChild.data)
#print(c1.firstChild.data)
print(classes_list)
print(len(classes_list))
运行结果:
['sedan', 'van', 'SUV', 'truck', 'minibus', 'hatchback', 'tricycle', 'bus']
8