av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術(shù)文章
文章詳情頁

python代碼xml轉(zhuǎn)txt實(shí)例

瀏覽:63日期:2022-08-03 08:54:48

為了訓(xùn)練深度學(xué)習(xí)模型,經(jīng)常要整理大量的標(biāo)注數(shù)據(jù),需統(tǒng)一不同格式的標(biāo)注數(shù)據(jù),一般情況下習(xí)慣讀取TXT格式的數(shù)據(jù)。但實(shí)際中經(jīng)常遇到XML格式的標(biāo)注數(shù)據(jù),在此舉例:1.讀取XML標(biāo)注數(shù)據(jù);2.寫入TXT文件。

XML標(biāo)注數(shù)據(jù)如下

<annotation verified='no'> <folder>suE</folder> <filename>Drivingrecord_001</filename> <path>C:DesktopDrivingrecord_001.jpg</path> <source> <database>Unknown</database> </source> <size> <width>1920</width> <height>1080</height> <depth>3</depth> </size> <segmented>0</segmented> <object> <name>蘇E*****-藍(lán)-1-白,灰-大眾-上海大眾-桑塔納-尚納</name> <flag>polygon</flag> <pose>Unspecified</pose> <truncated>0</truncated> <difficult>0</difficult> <bndbox> <leftTopx>170</leftTopx> <leftTopy>704</leftTopy> <rightTopx>167</rightTopx> <rightTopy>729</rightTopy> <rightBottomx>242</rightBottomx> <rightBottomy>735</rightBottomy> <leftBottomx>243</leftBottomx> <leftBottomy>710</leftBottomy> </bndbox> </object> <object> <name>蘇E*****-藍(lán)-1-黃-雷克薩斯-雷克薩斯(進(jìn)口)-雷克薩斯RX</name> <flag>polygon</flag> <pose>Unspecified</pose> <truncated>0</truncated> <difficult>0</difficult> <bndbox> <leftTopx>733</leftTopx> <leftTopy>721</leftTopy> <rightTopx>733</rightTopx> <rightTopy>759</rightTopy> <rightBottomx>881</rightBottomx> <rightBottomy>760</rightBottomy> <leftBottomx>882</leftBottomx> <leftBottomy>722</leftBottomy> </bndbox> </object> <object> <name>蘇*****-藍(lán)-1-黑-寶馬-寶馬(進(jìn)口)-寶馬7系</name> <flag>polygon</flag> <pose>Unspecified</pose> <truncated>0</truncated> <difficult>0</difficult> <bndbox> <leftTopx>1274</leftTopx>

<leftTopy>657</leftTopy> <rightTopx>1274</rightTopx> <rightTopy>671</rightTopy> <rightBottomx>1325</rightBottomx> <rightBottomy>670</rightBottomy> <leftBottomx>1326</leftBottomx> <leftBottomy>656</leftBottomy> </bndbox> </object> <object> <name>蘇*****-藍(lán)-1-灰-標(biāo)致-東風(fēng)標(biāo)致-標(biāo)致307</name> <flag>polygon</flag> <pose>Unspecified</pose> <truncated>0</truncated> <difficult>0</difficult> <bndbox> <leftTopx>1609</leftTopx> <leftTopy>658</leftTopy> <rightTopx>1611</rightTopx> <rightTopy>671</rightTopy> <rightBottomx>1659</rightBottomx> <rightBottomy>669</rightBottomy> <leftBottomx>1657</leftBottomx> <leftBottomy>656</leftBottomy> </bndbox> </object> </annotation>

在此,我們只需要圖片名filename,和每個object的坐標(biāo)(四個點(diǎn)的坐標(biāo))

Drivingrecord_001.jpg 170 704 167 729 242 735 243 710 733 721 733 759 881 760 882 722 1274 657 1274 671 1325 670 1326 656 1609 658 1611 671 1659 669 1657 656

利用xml.dom.*模塊,文件對象模塊DOM在讀取XML文件時,一次讀取整個文件,將其所有數(shù)據(jù)保存在一個樹結(jié)構(gòu)中,此時,可利用DOM的各種函數(shù)來讀取目標(biāo)數(shù)據(jù)。在此,利用xml.dom.minidom解析XML文件。

并將目標(biāo)數(shù)據(jù)寫入TXT文檔。

# -*- coding: utf-8 -*- ''' Created on Fri Mar 2 15:36:44 2018 @author: gg ''' import xml.dom.minidom import os save_dir = ’D:plate_train’ if not os.path.exists(save_dir): os.mkdir(save_dir) f = open(os.path.join(save_dir, ’landmark.txt’), ’w’) DOMTree = xml.dom.minidom.parse(’D:plate_trainlabelDrivingrecord_001.xml’) annotation = DOMTree.documentElement filename = annotation.getElementsByTagName('filename')[0] imgname = filename.childNodes[0].data+’.jpg’ print(imgname) objects = annotation.getElementsByTagName('object') loc = [imgname] #文檔保存格式:文件名 坐標(biāo) for object in objects: bbox = object.getElementsByTagName('bndbox')[0] leftTopx = bbox.getElementsByTagName('leftTopx')[0] lefttopx = leftTopx.childNodes[0].data print(lefttopx) leftTopy = bbox.getElementsByTagName('leftTopy')[0] lefttopy = leftTopy.childNodes[0].data print(lefttopy) rightTopx = bbox.getElementsByTagName('rightTopx')[0] righttopx = rightTopx.childNodes[0].data print(righttopx) rightTopy = bbox.getElementsByTagName('rightTopy')[0] righttopy = rightTopy.childNodes[0].data print(righttopy) rightBottomx = bbox.getElementsByTagName('rightBottomx')[0] rightbottomx = rightBottomx.childNodes[0].data print(rightbottomx) rightBottomy = bbox.getElementsByTagName('rightBottomy')[0] rightbottomy = rightBottomy.childNodes[0].data print(rightbottomy) leftBottomx = bbox.getElementsByTagName('leftBottomx')[0] leftbottomx = leftBottomx.childNodes[0].data print(leftbottomx) leftBottomy = bbox.getElementsByTagName('leftBottomy')[0] leftbottomy = leftBottomy.childNodes[0].data print(leftbottomy) loc = loc + [lefttopx, lefttopy, righttopx, righttopy, rightbottomx, rightbottomy, leftbottomx, leftbottomy] for i in range(len(loc)): f.write(str(loc[i])+’ ’) f.write(’tn’) f.close()

以上這篇python代碼xml轉(zhuǎn)txt實(shí)例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 涩爱av一区二区三区 | 美女一级毛片 | av片免费| 国产精品久久亚洲 | 午夜精品一区二区三区在线视频 | 成人精品一区 | 日韩免费看视频 | 国产999精品久久久久久 | 成人午夜激情 | 国产精品亚洲综合 | 91久久综合亚洲鲁鲁五月天 | 91精品国产91久久久久久 | 亚洲精品免费观看 | 91正在播放| 一级黄色录像毛片 | 久久久久久久久蜜桃 | 欧美一区2区三区3区公司 | 精品乱人伦一区二区三区 | 精品久久国产 | 99精品欧美一区二区三区综合在线 | 国产jizz女人多喷水99 | 一区二区三区在线播放 | 精品欧美一区二区三区精品久久 | 玖玖免费 | 国产999精品久久久久久 | 国产精品一区久久久 | 中文字幕三区 | 在线中文字幕视频 | 国产乱码精品一区二区三区忘忧草 | 天天插天天狠天天透 | 天天操夜夜操 | 欧美一区二区三区高清视频 | 91精品中文字幕一区二区三区 | 国产精品免费一区二区三区四区 | 国产精品久久久久久久久久免费 | 精品日韩一区二区 | 欧美综合一区二区 | 国产精品99久久久久久www | 日韩欧美久久 | 粉嫩一区二区三区国产精品 | 久久国产精品久久久久久 |