from xml.etree.ElementTree import ElementTree, Element # xml换行 def indent(elem, level=0): i = "\n" + level*"\t" if len(elem): if not elem.text or not elem.text.strip(): elem.text = i + "\t" if not elem.tail or not elem.tail.strip(): elem.tail = i for elem in elem: indent(elem, level+1) if not elem.tail or not elem.tail.strip(): elem.tail = i else: if level and (not elem.tail or not elem.tail.strip()): elem.tail = i def add_xml(inforsDict,xmlFilePath): result = inforsDict for re in result: # if re['score'] > 0.5: # 获得标注信息 ObjName = list(re.keys())[0] xmin = int(list(re.values())[0][0]) ymin = int(list(re.values())[0][1]) xmax = int(list(re.values())[0][2]) ymax = int(list(re.values())[0][3]) # xmax = xmin + r # ymax = ymin + z #if ObjName == 'person': tree = ElementTree() tree.parse(xmlFilePath) # 得到根目录 root = tree.getroot() # 创建一级目录 elementOjb = Element('object') elementBox = Element('bndbox') # 创建二级目录 one = Element('name') one.text = ObjName # 二级目录的值 #结果展示:1 elementOjb.append(one) # 将二级目录加到一级目录里 two = Element('pose') two.text = "Unspecified" elementOjb.append(two) three = Element('truncated') three.text = "0" elementOjb.append(three) four = Element('difficult') four.text = "0" elementOjb.append(four) five = Element('xmin') five.text = str(xmin) elementBox.append(five) six = Element('xmax') six.text = str(xmax) elementBox.append(six) seven = Element('ymin') seven.text = str(ymin) elementBox.append(seven) eight = Element('ymax') eight.text = str(ymax) elementBox.append(eight) # 将一级目录加到根目录里 elementOjb.append(elementBox) root.append(elementOjb) # 换行缩进 indent(elementOjb) indent(elementBox) # 让结果保存进文件就可以了 tree.write(xmlFilePath, encoding='utf-8', xml_declaration=True)