python写入xml文件_python 写 XML 文件

本文介绍了如何使用Python创建一个符合Pascal VOC标准的XML文件,详细步骤包括创建DOM树、添加folder、filename、filepath、size及object节点,适用于图像标注任务。
摘要由CSDN通过智能技术生成

1 ### 参考链接:https://blog.csdn.net/qq_37174526/article/details/89489212

2 from xml.dom importminidom3

4 #参数:xml_save_path、filename(文件名称)、filepath(文件绝对路径)、

5 defwriteXML(xml_save_path):6 #1.创建 DOM 树对象

7 dom =minidom.Document()8 #2.创建根节点。每次都要用DOM对象来创建任何节点。

9 root_node = dom.createElement('annotation')10 #3.用 DOM 对象添加根节点

11 dom.appendChild(root_node)12

13 ## folder 子节点

14 folder_node = dom.createElement('folder') #创建子节点

15 root_node.appendChild(folder_node) #将创建的子节点挂到根节点上

16 folder_text = dom.createTextNode('lyj') #创建文本节点

17 folder_node.appendChild(folder_text) #将创建的文本节点挂到子节点上

18

19 ## filename 子节点, 需要传进参数 filename

20 filename_node = dom.createElement('filename')21 root_node.appendChild(filename_node)22 filename_text = dom.createTextNode('文件名称')23 filename_node.appendChild(filename_text)24

25 ## filepath 子节点, 需要传进参数 filepath

26 filepath_node = dom.createElement('filepath')27 root_node.appendChild(filepath_node)28 filepath_text = dom.createTextNode('文件绝对路径')29 filepath_node.appendChild(filepath_text)30

31 ## size 子节点,需要传进参数 w、h、c

32 size_node = dom.createElement('size')33 root_node.appendChild(size_node)34

35 width_node = dom.createElement('width')36 size_node.appendChild(width_node)37 width_text = dom.createTextNode('图宽')38 width_node.appendChild(width_text)39

40 height_node = dom.createElement('height')41 size_node.appendChild(height_node)42 height_text = dom.createTextNode('图高')43 height_node.appendChild(height_text)44

45 depth_node = dom.createElement('depth')46 size_node.appendChild(depth_node)47 depth_text = dom.createTextNode('通道数')48 depth_node.appendChild(depth_text)49

50 ### 创建 object 节点

51 for i in range(1):52 object_node = dom.createElement('object')53 root_node.appendChild(object_node)54

55 name_node = dom.createElement('name')56 object_node.appendChild(name_node)57 name_text = dom.createTextNode('类别名称')58 name_node.appendChild(name_text)59

60 bndbox_node = dom.createElement('bndbox')61 object_node.appendChild(bndbox_node)62

63 xmin_node = dom.createElement('xmin')64 bndbox_node.appendChild(xmin_node)65 xmin_text = dom.createTextNode('x_min')66 xmin_node.appendChild(xmin_text)67

68 ymin_node = dom.createElement('ymin')69 bndbox_node.appendChild(ymin_node)70 ymin_text = dom.createTextNode('y_min')71 ymin_node.appendChild(ymin_text)72

73 xmax_node = dom.createElement('xmax')74 bndbox_node.appendChild(xmax_node)75 xmax_text = dom.createTextNode('x_max')76 xmax_node.appendChild(xmax_text)77

78 ymax_node = dom.createElement('ymax')79 bndbox_node.appendChild(ymax_node)80 ymax_text = dom.createTextNode('y_max')81 ymax_node.appendChild(ymax_text)82

83

84 #每一个结点对象(包括dom对象本身)都有输出XML内容的方法,如:toxml()--字符串, toprettyxml()--美化树形格式。

85

86 try:87 with open(xml_save_path,'w',encoding='UTF-8') as fh:88 #4.writexml()第一个参数是目标文件对象,第二个参数是根节点的缩进格式,第三个参数是其他子节点的缩进格式,

89 #第四个参数制定了换行格式,第五个参数制定了xml内容的编码。

90 dom.writexml(fh,indent='',addindent='\t',newl='\n',encoding='UTF-8')91 print('OK, xml 文件创建成功。')92 exceptException as err:93 print('错误:{err}'.format(err=err))94

95 if __name__ == '__main__':96 xml_save_path = '/home/aistudio/myxml2.xml'

97 writeXML(xml_save_path)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值