在本人做目标检测的项目中,偶尔会遇到替换便签的情况。不要慌,有以下代码拯救你!!!
import os
import re
import xml.etree.ElementTree as ET
# 指定文件夹路径
folder_path = "C:/XXX/imagedata/Annotations"
# 定义要替换的词和对应的替换词的字典
replacement_dict = {
"Bauhinia": "Bauhinia_purpurea",
"Roystonea": "Roystonea_regia",
"Mangifera": "Mangifera_indica",
"Albizzia": "Albizzia_julibrissin"
# "AnotherWord": "ReplacementWord"
}
# 遍历文件夹中的文件
for filename in os.listdir(folder_path):
if filename.endswith(".xml"):
# 构建完整的文件路径
file_path = os.path.join(folder_path, filename)
# 解析XML文件
tree = ET.parse(file_path)
# 获取根元素
root = tree.getroot()
# 遍历XML文件中的元素
for element in root.iter():
# 遍历替换词典中的键值对
for word, replacement in replacement_dict.items():
# 使用正则表达式进行替换
element.text = re.sub(r'\b%s\b' % word, replacement, element.text)
# 保存修改后的XML文件
tree.write(file_path)
上面我将Bauhinia、Roystonea等四个词分别替换成对应的词。
具体的怎么用在代码中也已经标注好了,请食用!