python统计xml标注的类名

     训练数据前要进行图片标注,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

猜你喜欢

转载自blog.csdn.net/weixin_42731241/article/details/81667273