解决数据集中xml文件类别标签的首字母大小写不一致问题
import os
import xml.etree.ElementTree as ET# 指定要处理的 XML 文件夹路径
xml_folder_path = r'D:\CVproject\ultralytics-main\datatrans\Annotations'def capitalize_first_letter_in_xml(xml_file):# 解析 XML 文件tree = ET.parse(xml_file)root = tree.getroot()# 遍历所有 <name> 标签for name_elem in root.findall('.//name'):original_name = name_elem.textif original_name and original_name[0].islower():# 将首字母大写modified_name = original_name.capitalize()name_elem.text = modified_nameprint(f"Updated '{original_name}' to '{modified_name}' in file '{xml_file}'")# 将修改后的内容写回原文件tree.write(xml_file, encoding='utf-8', xml_declaration=True)if __name__ == "__main__":# 获取文件夹下所有 XML 文件for filename in os.listdir(xml_folder_path):if filename.endswith('.xml'):file_path = os.path.join(xml_folder_path, filename)capitalize_first_letter_in_xml(file_path)
代码如上所述,使用方式:
在
xml_folder_path = r'D:\CVproject\ultralytics-main\datatrans\Annotations'
中输入xml文件夹的绝对路径(最好是)
for name_elem in root.findall('.//name'):这里就是标签的位置所在