如何批量修改xml标签,把中文改为英文

前言:由于YOLO模型的限制性,我尝试训练带有中文字体的xml数据集标签,结果显示是乱码或者无法显示。因此想把所有xml标签里的中文统一改为英文,以下以中文“号猪”为例,统一改为“pig”。

正文:

要批量修改多个XML文件中的标签,将"号猪"替换为"pig",您可以使用Python中的XML解析库来实现。

下面是一个示例代码,它遍历指定文件夹下的所有XML文件,并将标签中的"号猪"替换为"pig",然后保存修改后的XML文件。

import os
import xml.etree.ElementTree as ET

#它遍历指定文件夹下的所有XML文件,并将标签中的"号猪"替换为"pig",然后保存修改后的XML文件。
def batch_modify_labels(folder_path):
    # 遍历指定文件夹下的所有XML文件
    for filename in os.listdir(folder_path):
        if filename.endswith(".xml"):
            xml_file = os.path.join(folder_path, filename)

            # 解析XML文件
            tree = ET.parse(xml_file)
            root = tree.getroot()

            # 遍历所有的object元素,修改标签内容
            for obj in root.iter("object"):
                name = obj.find("name").text
                if "号猪" in name:
                    new_name = name.replace("号猪", "pig")
                    obj.find("name").text = new_name

            # 保存修改后的XML文件
            tree.write(xml_file)

# 指定存储XML文件的文件夹路径
folder_path = "datasets/Annotations2"

# 执行批量修改标签的函数
batch_modify_labels(folder_path)

请将代码中的datasets/Annotations2替换为包含要修改的XML文件的文件夹的实际路径。运行代码后,它将遍历该文件夹下的所有XML文件,并将标签中的"号猪"替换为"pig"。注意,在修改XML文件之前,请确保备份原始文件以防止意外修改。

猜你喜欢

转载自blog.csdn.net/weixin_45819759/article/details/131943833