修改 name 为 i4 的object 的 bndbox 的值
import os
import xml.etree.ElementTree as ET
# 修改VOC数据集中xml标签文件的值
rfile = "1.xml" # 有内容的
wfile = "2.xml"
tree = ET.parse(rfile) # 读文件
root = tree.getroot()
ObjectS=root.findall('object')
for Object in ObjectS:
name = Object.find('name').text
if name == "i4":
xyxy = Object.find('bndbox')
xyxy.find('xmin').text = str(6661) # 修改成 1
xyxy.find('ymin').text = str(6662)
xyxy.find('xmax').text = str(6663)
xyxy.find('ymax').text = str(6664)
tree.write(wfile, encoding='utf-8') # 保存修改后的 tree 到 wfile文件中。
xmL 文件格式如下:
<annotation>
<folder>2</folder>
<filename>00002.png</filename>
<path>00002.png</path>
<source>
<database>Unknown</database>
</source>
<size>
<width>1280</width>
<height>1024</height>
<depth>3</depth>
</size>
<segmented>0</segmented>
<object>
<name>i4</name>
<pose>Unspecified</pose>
<truncated>0</truncated>
<difficult>0</difficult>
<bndbox>
<xmin>528</xmin>
<ymin>352</ymin>
<xmax>543</xmax>
<ymax>367</ymax>
</bndbox>
</object>
</annotation>
另一种修改方法,如下:
tree = ET.parse(file)
root = tree.getroot()
for object1 in root.findall('object'):
for sku in object1.findall('name'):
if sku.text == 'preName':
sku.text = 'TESTNAME'
tree.write(file,encoding='utf-8')
完