[Faster R-CNN] 项目中涉及到的python小知识(三):xml.etree.ElementTree模块

xml.etree.ElementTree模块实现了一个简单而有效的用户解析和创建XML数据的API
我把该XML文件保存在:F:\data\VOCdevkit\VOC2012\Annotations\2007_000027.xml文件中
这里写图片描述

xml数据结构是树状的,有根节点、子节点。在根节点下面,可以有很多子节点,而每一个子节点又可以有自己的属性或子节点….
上图的根节点就一个:annotation

import xml.etree.ElementTree as ET  #导入模块

#读取XML文件
tree = ET.parse('F:\\data\\VOCdevkit\\VOC2012\\Annotations\\2007_000027.xml') 
root = tree.getroot() #获取根节点
tag = root.tag   #获取根节点的名称
attrib = root.attrib  #获取根节点的属性

这里写图片描述

获取子节点的名称和属性:

for child in root:
    print(child.tag, child.attrib)

输出为:
这里写图片描述

获取子节点的名称的值:

element_objs = element.findall('object')  #object是一级子节点 ,输出:[Element]
element_filename = element.find('filename').text  #filename是一级子节点,输出:2007_000027.jpg
element_width = int(element.find('size').find('width').text) #size是一级子节点 ,  输出:486
element_height = int(element.find('size').find('height').text)#输出:500

猜你喜欢

转载自blog.csdn.net/weixin_41196817/article/details/82466261