需求:
需要统计图片标注产生的XML文件的每个缺陷个数,同时还要将xml文件中标注错误的缺陷修改过来。
XML文件大致格式:
每个XML或许有多个缺陷,都要统计出来。
总共672的XML文件。`
from lxml import etree
import numpy as np
import pandas as pd
import os
#封装一个解析XML文件的函数
def readXML(path):
parser=etree.XMLParser(encoding="utf-8")
#传入两个参数,一个是文件路径,一个是解析器
tree=etree.parser(path,parser=parser)
#查看解析出来的内容
print(etree.tostring(tree,encoding='utf-8').decode('utf-8')
#由于xpath返回的是列表,因此需要提取你需要的信息
name=tree.path("//name/text()")
#如果xml中有多个name标签,name都会得到,如果只想获得第一个name的值,写成name=tree.path("//name/text()")[0]
return name
#封装一个循环遍历xml文件名的函数
def findAllFile(base):
for root ,ds,fs in os.walk(base):
for f in fs:
yield f
def main():
base='你需要遍历的文件夹路径‘
#用一个数组去存放遍历出来的文件名,方便后续传入readXML函数
a=[]
for i in findAllFile(base):
a.append[i]
print(a)
return a
#主函数
if __name__=='__main__':
a=main()
n=[]
#将文件名循环输入到readXML函数解析
for i in range(len(a)):
try:
name=readXML(a[i])
#由于解析出来name有多个,所以再将name一个一个的取出来在加入数组,如果整个XMl文件name只有一个,那么不需要这步
for j in range(len(name)):
n.append(name[j])
except:
continue
#统计数组中相同元素的个数
a={}
for i in n:
if n.count(i)>0:
a[i]=n.count(i)
print(a)
运行结果
版权声明:本文为qq_38556887原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。