python xml抠裁剪某标签并生成新坐标
时间: 2024-01-07 13:02:28 浏览: 86
你可以使用Python中的ElementTree模块来解析XML文件,然后抠取特定标签的信息。
例如,假设你有一个名为`example.xml`的XML文件,其中包含以下内容:
```
<?xml version="1.0" encoding="UTF-8"?>
<objects>
<object>
<name>person</name>
<bndbox>
<xmin>100</xmin>
<ymin>200</ymin>
<xmax>300</xmax>
<ymax>400</ymax>
</bndbox>
</object>
<object>
<name>car</name>
<bndbox>
<xmin>400</xmin>
<ymin>500</ymin>
<xmax>600</xmax>
<ymax>700</ymax>
</bndbox>
</object>
</objects>
```
你可以使用以下代码来抓取`name`为`person`的标签信息,并生成新的坐标:
```python
import xml.etree.ElementTree as ET
# 解析XML文件
tree = ET.parse('example.xml')
root = tree.getroot()
# 查找指定标签
for obj in root.findall('object'):
if obj.find('name').text == 'person':
# 获取坐标信息
xmin = int(obj.find('bndbox/xmin').text)
ymin = int(obj.find('bndbox/ymin').text)
xmax = int(obj.find('bndbox/xmax').text)
ymax = int(obj.find('bndbox/ymax').text)
# 修改坐标信息
obj.find('bndbox/xmin').text = str(xmin + 10)
obj.find('bndbox/ymin').text = str(ymin + 10)
obj.find('bndbox/xmax').text = str(xmax + 10)
obj.find('bndbox/ymax').text = str(ymax + 10)
# 保存文件
tree.write('new_example.xml')
```
上述代码将抓取`name`为`person`的标签信息,并将其坐标信息向右下移动10个单位,然后保存为一个新的XML文件`new_example.xml`。
阅读全文