内含xml中修改类别名和删除类别名
import xml.etree.ElementTree as ET
import os
import shutil
path_all = 'xxxxxx' #xml路径
dir_list = os.listdir(path_all)
def get_and_check(root, name, length):
vars = root.findall(name)
if len(vars) == 0:
raise NotImplementedError('Can not fing %s in %s.' % (name, root.tag))
if length > 0 and len(vars) != length:
raise NotImplementedError('The size of %s is supposed to be %d, but is %d.' % (name, length, len(vars)))
if length == 1:
vars = vars[0]
return vars
category_list = []
targe_list = []
for xml_i in dir_list:
if 'xml' in xml_i:
file_path = os.path.join(dir_list, xml_i)
try:
tree = ET.parse(file_path)
root = tree.getroot()
for obj in root.findall('object'):
category = get_and_check(obj, 'name', 1).text
if category == 'xxx': #待修改类别名
obj.find('name').text = 'xxx' #修改类别
if category == 'xxx': # 待删除类别名
root.remove(obj) #删除
tree.write(os.path.join(dir_list, xml_i))