批量修改并保存xml文件

因?yàn)轫?xiàng)目做數(shù)據(jù)集,把圖片放在以中文名命名的文件夾中,導(dǎo)致進(jìn)行數(shù)據(jù)擴(kuò)充時(shí)報(bào)錯(cuò)。
如圖,之前紅框內(nèi)的是中文名,現(xiàn)在要改成英文


image.png

修改思路:
1.打開放xml的文件夾
2.獲取相應(yīng)節(jié)點(diǎn)標(biāo)簽的值
3.對值進(jìn)行更改,其中路徑更改使用正則替換
4.保存xml文件

# coding:utf-8
import re
import os
import os.path
import xml.dom.minidom

# path="../xml/"
path = '..\create-dataset\examples\ladder\Annotations'
files = os.listdir(path)  # 得到文件夾下所有文件名稱
s = []
for xmlFile in files:  # 遍歷文件夾

    if not os.path.isdir(xmlFile):  # 判斷是否是文件夾,不是文件夾才打開

        # xml讀取操作

        # 將獲取到的xml文件名送入到dom解析
        # 錯(cuò)誤代碼:dom=xml.dom.minidom.parse(xmlFile)
        dom = xml.dom.minidom.parse(os.path.join(path, xmlFile))
        root = dom.documentElement

        ###獲取標(biāo)簽對folder/path之間的值
        folder = root.getElementsByTagName('folder')
        pathNode = root.getElementsByTagName('path')

        # 修改相應(yīng)標(biāo)簽的值
        for i in range(len(folder)):
            print(folder[i].firstChild.data)
            a = folder[i].firstChild.data
            print(type(a))
            folder[i].firstChild.data = 'ladderImages'
            print(folder[i].firstChild.data)

        for j in range(len(pathNode)):
            print(pathNode[j].firstChild.data)
            string = pathNode[j].firstChild.data
            pathNode[j].firstChild.data = re.sub('梯子', 'ladderImages', string)
            print(pathNode[j].firstChild.data)

        # 保存修改到xml文件中
        with open(os.path.join(path, xmlFile), 'w') as fh:
            dom.writexml(fh)
            # root.write(fh)
            print('恭喜,寫入folder/path成功!')
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 今天感恩節(jié)哎,感謝一直在我身邊的親朋好友。感恩相遇!感恩不離不棄。 中午開了第一次的黨會(huì),身份的轉(zhuǎn)變要...
    余生動(dòng)聽閱讀 10,840評論 0 11
  • 彩排完,天已黑
    劉凱書法閱讀 4,471評論 1 3
  • 表情是什么,我認(rèn)為表情就是表現(xiàn)出來的情緒。表情可以傳達(dá)很多信息。高興了當(dāng)然就笑了,難過就哭了。兩者是相互影響密不可...
    Persistenc_6aea閱讀 129,638評論 2 7

友情鏈接更多精彩內(nèi)容