python代码xml转txt实例
为了训练深度学习模型,经常要整理大量的标注数据,需统一不同格式的标注数据,一般情况下习惯读取TXT格式的数据。但实际中经常遇到XML格式的标注数据,在此举例:1.读取XML标注数据;2.写入TXT文件。
XML标注数据如下
suE Drivingrecord_001 C:\Desktop\Drivingrecord_001.jpg Unknown 1920 1080 3 0
657 1274 671 1325 670 1326 656
在此,我们只需要图片名filename,和每个object的坐标(四个点的坐标)
Drivingrecord_001.jpg17070416772924273524371073372173375988176088272212746571274671132567013266561609658161167116596691657656
利用xml.dom.*模块,文件对象模块DOM在读取XML文件时,一次读取整个文件,将其所有数据保存在一个树结构中,此时,可利用DOM的各种函数来读取目标数据。在此,利用xml.dom.minidom解析XML文件。
并将目标数据写入TXT文档。
#-*-coding:utf-8-*- """ CreatedonFriMar215:36:442018 @author:gg """ importxml.dom.minidom importos save_dir='D:\plate_train' ifnotos.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_train\label\Drivingrecord_001.xml') annotation=DOMTree.documentElement filename=annotation.getElementsByTagName("filename")[0] imgname=filename.childNodes[0].data+'.jpg' print(imgname) objects=annotation.getElementsByTagName("object") loc=[imgname]#文档保存格式:文件名坐标 forobjectinobjects: 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] foriinrange(len(loc)): f.write(str(loc[i])+'') f.write('\t\n') f.close()
以上这篇python代码xml转txt实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。