【批量修改xml标签文件中的内容】

批量修改xml标签文件中的内容
(最近遇见一件崩溃的事情,请大家帮忙打的xml标签中的filename字段编号中,没有.jpg后缀)
这是未修改前的xml
这是未修改前的xml
这是修改后的

import os
import os.path
from xml.etree.ElementTree import parse, Element
#批量修改xml中内容
def test():
   # path = 'G:/laboratory/Experimentrelated/Estrus/Postures/datasets/all xml/'#xml文件所在的目录
    path = 'G:/laboratory/Experimentrelated/Estrus/Postures/datasets/all xml/'#xml文件所在的目录
    files = os.listdir(path)  # 得到文件夹下所有文件名称
    s = []
    for xmlFile in files:  # 遍历文件夹
        if not os.path.isdir(xmlFile):  # 判断是否是文件夹,不是文件夹才打开
            print
            xmlFile
            pass
        path ='G:/laboratory/Experimentrelated/Estrus/Postures/datasets/all xml/'
        #print(xmlFile)
        path1 = 'G:/laboratory/Experimentrelated/Estrus/Postures/datasets/all xml/'+xmlFile#定位当前处理的文件的路径
        newStr = os.path.join(path, xmlFile)
        houzhui = ".jpg"
        dom = parse(newStr)  ###最核心的部分,路径拼接,输入的是具体路径
        root = dom.getroot()
        #print(root)
        for ann in root.iter('annotation'):  # 获取object节点中的name子节点
            #打印 filename中的内容,也就是c
           #print(ann.find('filename').text)
           c=ann.find('filename').text
           print(c)
        #打印拼接后的内容
          # d = c + houzhui
          # print("d="+d)
          # ann.find('filename').text=d
           # d=c+houzhui
           # print (d)
           # print(type(d))
           # name1 = ann.find(d).text  # 修改
           # print(name1)
        dom.write(path1, xml_declaration=True)  # 保存到指定文件
        pass


if __name__ == '__main__':
    test()

你可能感兴趣的:(xml)