原博客網址修改xml的class的信息
#!/usr/bin/env python2
# -*- coding: utf-8 -*-
import os
import xml.etree.ElementTree as ET
origin_ann_dir = './衝鋒槍xml/'# 設置原始標籤路徑爲 Annos
new_ann_dir = './tmp/'# 設置新標籤路徑 Annotations
for dirpaths, dirnames, filenames in os.walk(origin_ann_dir):
# os.walk遊走遍歷目錄名
for filename in filenames:
print("process...")
if os.path.isfile(r'%s%s' %(origin_ann_dir, filename)):
# print("yes") # 獲取原始xml文件絕對路徑,isfile()檢測是否爲文件 isdir檢測是否爲目錄
origin_ann_path = os.path.join(r'%s%s' %(origin_ann_dir, filename)) # 如果是,獲取絕對路徑(重複代碼)
new_ann_path = os.path.join(r'%s%s' %(new_ann_dir, filename))
tree = ET.parse(origin_ann_path) # ET是一個xml文件解析庫,ET.parse()打開xml文件。parse--"解析"
root = tree.getroot() # 獲取根節點
for object in root.findall('object'): # 找到根節點下所有“object”節點
name = str(object.find('name').text) # 找到object節點下name子節點的值(字符串)
# 如果name等於str,則刪除該節點
# if (name in ["car_head"]):
# root.remove(object)
# 如果name等於str,則修改name
if(name in ["Submachine gun"]):
object.find('name').text = "submachinegun"
# 檢查是否存在labelmap中沒有的類別
for object in root.findall('object'):
name = str(object.find('name').text)
if not (name in ["submachinegun"]):
print(filename + "------------->label is error--->" + name)
tree.write(new_ann_path)#tree爲文件,write寫入新的文件中。
自己修改了部分,並且對其了代碼