python脚本分享:xml文件批量修改
今天分享一個(gè)我自己寫的實(shí)用腳本,主要是將.xml文件進(jìn)行批量的修改
首先,聲明我并不是很了解.xml的相關(guān)知識(shí),所以今天主要是以我遇到的問題來做個(gè)記錄。
想要更多的了解xml,請(qǐng)看最后的資料分享。
效果展示:
因?yàn)檫@些是屬于我們項(xiàng)目小組的,我也不清楚是不是有什么不能公開的,我就截取了一小部分,原本是用lambelme來修改的,但由于xml文件似乎讀不進(jìn)去,所以只有手動(dòng)修改,將water改為blue(重要的是一個(gè)一個(gè)用記事本打開,手動(dòng)修改),這時(shí)候我的第一生產(chǎn)力產(chǎn)生了,because I am lazy。
這是下面的pyxml.py文件
import os import os.path import xml.dom.minidom as mdpath = 'E:\\Deeplearning\\Road_Detect_Project\\road_surface_mark\\Annot\\' files = os.listdir(path) # 得到文件夾下所有文件名稱 def main():for xmlFile in files: # 遍歷文件夾if not os.path.isdir(xmlFile): # 判斷是否是文件夾,不是文件夾才打開dom = md.parse(os.path.join(path,xmlFile))root = dom.documentElementnames = root.getElementsByTagName('name') #對(duì)某個(gè)標(biāo)簽進(jìn)行修改# print(name[0].firstChild.data)for i in range(len(names)):print(names[i].firstChild.data)a=names[i].firstChild.dataprint(type(a))names[i].firstChild.data = "red"print(names[i].firstChild.data)with open(os.path.join(path,xmlFile), 'w') as fh:dom.writexml(fh)print('夏天是冰紅茶的文件成功寫入') #使用時(shí),請(qǐng)不要?jiǎng)h除這段if __name__ == '__main__':main()?我說一下問題,因?yàn)樾〗M的其他師兄有用中文路徑,就會(huì)發(fā)生下面的情況:
但是記事本打開是正常的,也已經(jīng)修改成功了。
我查了,是因?yàn)榫幋a的問題,可以把XML文件的格式用記事本另存為ANSI就可以了(我不知道怎么另存為,可以看到記事本里面的編碼格式是ANSI,所以我覺得這個(gè)方法是行得通的),還可以將第一行修改為
<?xml version="1.0" encoding="GBK"?>
這種我是成功了。(別建議我打馬賽克)下次組會(huì),我一定要提這個(gè)問題,以前因?yàn)槁窂街杏兄形某粤撕芏嗵?#xff0c;所以我現(xiàn)在建工程都是盡量去用英文。
?
參考資料:
如何在Python中解析和修改XML?- 極客極客 (geeksforgeeks.org)
xml.dom.minidom (Structured Markup) - Python 中文開發(fā)手冊(cè) - 開發(fā)者手冊(cè) - 騰訊云開發(fā)者社區(qū)-騰訊云 (tencent.com)
XML系列教程 (w3school.com.cn)?
總結(jié)
以上是生活随笔為你收集整理的python脚本分享:xml文件批量修改的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux系统运维与架构设计之Linux
- 下一篇: 微信小应用第一天(简介)