第一次解析xml文件
xml文件示例:
解析代码:
from lxml import etree
import os
import numpy as np
def analyse(filepath):
parser = etree.XMLParser()
root = etree.parse(filepath, parser).getroot()
data = []
object_num = 0
for i in root.findall('object'):
object_num += 1
name = i.find('name').text
xmin = float(i.xpath('.//xmin')[0].text)
xmax = float(i.xpath('.//xmax')[0].text)
ymax = float(i.xpath('.//ymax')[0].text)
ymin = float(i.xpath('.//ymin')[0].text)
data.append([xmin, ymin, xmax, ymax, name])
return data, object_num
def all_lxml_analyse(all_lxml_path):
file_namelist = os.listdir(all_lxml_path)
file_num = 0
data_list = []
for filename in file_namelist:
file_num += 1
filename = all_lxml_path + '/' + filename
data = analyse(filename)[0]
object_num = analyse(filename)[1]
data_list.append(data)
print(file_num, object_num, data)
all_lxml_analyse('./01')
任务需求:将xml文件转换成numpy数组存储 numpy数组维度(文件数, 目标数, 5) 5包括(xmin,ymin,xmax,ymax,label) ps:label用数字表示(0开始),最后我并没有转换成为numpy,这只是方便后面几天记忆做的笔记,第一次写的比较潦草,可能别人看不懂,后面我会找时间添加解释。