在目标检测任务中,VOC 格式的标注文件(XML)是非常常见的数据格式。但有时候我们可能会遇到需要统一修改标签名称的情况 —— 比如标注时不小心用了不同的名称,或者需要将某一类别的标签统一调整。手动一个个改太费时间了!这个Python 脚本,帮你批量修改 VOC 格式 XML 文件中的标签名称。
脚本功能
这个脚本的核心功能很明确:遍历指定文件夹下的所有 XML 标注文件,将每个文件中所有object节点下的name标签内容,统一修改为我们需要的名称(示例中是rat,可根据需求调整)。
脚本完整代码
import os
import xml.etree.ElementTree as ET
def replace_xml_name_tag(folder_path):
# 遍历文件夹中的所有文件
for filename in os.listdir(folder_path):
# 筛选出XML文件
if filename.endswith('.xml'):
file_path = os.path.join(folder_path, filename)
# 解析XML文件
tree = ET.parse(file_path)
root = tree.getroot()
# 查找所有object节点下的name标签并修改内容
for obj in root.findall('object'):
name_tag = obj.find('name')
if name_tag is not None:
name_tag.text = 'rat' # 修改标签名称为rat
# 保存修改后的XML文件
tree.write(file_path, encoding='utf-8', xml_declaration=True)
print(f"已处理文件: {filename}")
# 使用示例:替换为你的XML文件所在文件夹路径
xml_folder = "./Annotations" # 请替换为实际文件夹路径
replace_xml_name_tag(xml_folder)
print("所有XML文件处理完成")
使用方法
name_tag.text = 'rat' # 修改实际标签名称
xml_folder = "./Annotations" # 请替换为实际文件夹路径
replace_xml_name_tag(xml_folder)
print("所有XML文件处理完成")
1903

被折叠的 条评论
为什么被折叠?



