本文主要是介绍python-如何给乱序的xml文件重新添加字符间隔符号,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
没有字符间隔符号的xml文件:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-import xml.etree.ElementTree as ET
from xml.dom import minidom
import os###### 添加字符间距格式 ##########
def add_indentation(input_file, output_file):# 读取XML文件并解析为ElementTreetree = ET.parse(input_file)root = tree.getroot()# 使用minidom将ElementTree转换为带有缩进和格式的XML字符串xml_str = minidom.parseString(ET.tostring(root)).toprettyxml(indent=" ")# 将格式化的XML字符串写入新的XML文件# print(output_file)with open(output_file, "w") as f:f.write(xml_str)###### 判断是否含有字符间距格式 #########
def is_formatted(xml_file):# 解析XML文件tree = ET.parse(xml_file)root = tree.getroot()# 获取XML字符串xml_str = ET.tostring(root, encoding="utf-8").decode("utf-8")# 判断XML字符串是否包含缩进和换行符return '\n' in xml_str or '\t' in xml_str###### 没有字符间距格式的xml文件添加字符间距格式 #########
def convert_annotation(xml_path,save_xml,image_id):if not is_formatted(xml_path+'/%s.xml' % (image_id)):print(xml_path+'/%s.xml' % (image_id))add_indentation(xml_path+'/%s.xml' % (image_id), save_xml+'/%s.xml' % (image_id))xml_path = '/home/gyx/git/data/detect/Vehicle_Detection/val/val/vallabel/'
save_txt='/home/gyx/git/data/detect/Vehicle_Detection/val/val/vallabel_new/'# xml list
img_xmls = os.listdir(xml_path)
for img_xml in img_xmls:label_name = img_xml.split('.')[0]# print(label_name)convert_annotation(xml_path,save_txt,label_name)
添加了字符间隔符号的xml文件:
这篇关于python-如何给乱序的xml文件重新添加字符间隔符号的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!