因为要比赛制作voc数据集,然后给的数据集label是一个.txt文件,然后就需要将这个txt文件变为xml文件。对这方面一点也不懂,在此记录一下用lxml模块中的 etree创建xml文件。这只是一个例子,并不是制作voc数据集。后面估计会更新voc数据集制作。

效果

<?xml version='1.0' encoding='UTF-8'?>
<annotion><folder>VOCtype</folder><filename>000001.jpg</filename><source><database>VOC</database></source><size><width>458</width><height>45</height><height>45</height></size><segmented>0</segmented><object><name>face</name><pose>Unspecified</pose><truncated>0</truncated><difficult>0</difficult><bndbox><xmin>263</xmin><ymin>339</ymin><xmax>324</xmax><ymax>339</ymax></bndbox></object><object><name>face</name><pose>Unspecified</pose><truncated>0</truncated><difficult>0</difficult><bndbox><xmin>5</xmin><ymin>374</ymin><xmax>67</xmax><ymax>374</ymax></bndbox></object>
</annotion>

代码

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Wed Apr 11 15:12:22 2018@author: pc314
"""from lxml import etree
#创建一个annotion节点
root = etree.Element('annotion')
#创建一个子节点folder,一定要指定父节点
child1 = etree.SubElement(root,'folder')
child1.text = 'VOCtype'child2 = etree.SubElement(root,'filename')
child2.text = '000001.jpg'child3 = etree.SubElement(root,'source')child31 = etree.SubElement(child3,'database')
child31.text = 'VOC'child4 = etree.SubElement(root,'size')child41 = etree.SubElement(child4,'width')
child41.text = '458'child42 = etree.SubElement(child4,'height')
child42.text = '45'child43 = etree.SubElement(child4,'height')
child43.text = '45'child5 = etree.SubElement(root,'segmented')
child5.text = '0'
#自定义数据集
objectlist = [{'xmin':263,'ymin':211,'xmax':324,'ymax':339},{'xmin':5,'ymin':224,'xmax':67,'ymax':374}]for i in objectlist:child6 = etree.SubElement(root,'object')child61 = etree.SubElement(child6,'name')child61.text = 'face'child62 = etree.SubElement(child6,'pose')child62.text = 'Unspecified'child63 = etree.SubElement(child6,'truncated')child63.text = '0'child64 = etree.SubElement(child6,'difficult')child64.text = '0'child65 = etree.SubElement(child6,'bndbox')child651 = etree.SubElement(child65,'xmin')child651.text = str(i['xmin'])child652 = etree.SubElement(child65,'ymin')child652.text = str(i['ymax'])child653 = etree.SubElement(child65,'xmax')child653.text = str(i['xmax'])child654 = etree.SubElement(child65,'ymax')child654.text = str(i['ymax'])tree = etree.ElementTree(root)
tree.write('654.xml', pretty_print=True, xml_declaration=True, encoding='utf-8')

参考https://blog.csdn.net/qq_16209077/article/details/55049877

python记录(4)- lxml模块创建xml文件相关推荐

  1. python中利用lxml模块解析xml文件报错XMLSyntaxError: Opening and ending tag mismatch

    今天在代码中第一次使用lxml解析xml文件时出错了, XMLSyntaxError: Opening and ending tag mismatch: keyEffectiveDate line 2 ...

  2. python生成xml界面,Python如何用dom模块生成XML文

    Python如何用dom模块生成XML文件呢? 主要方法三点: 首先.生成XML节点(node) createElement("node_name") 然后.给节点添加属性值(At ...

  3. 「Python」 ElementTree模块解析xml文件,建议小白阅读全文

    背景 Python有三种方法解析xml:SAX,DOM,Elementree.本文记录ElementTree方法解析xml. 目前自己用的是Python3.6,但在该版本中并没有xml的缩进函数ET. ...

  4. python读xml文件生成.h头文件_Python创建xml文件示例

    Python创建xml文件示例 这里有新鲜出炉的 Python 入门,程序狗速度看过来! Python 编程语言 Python 是一种面向对象.解释型计算机程序设计语言,由 Guido van Ros ...

  5. python学习(二) ElementTree解析、读写、创建xml文件

    python学习(二) 读写xml文件 1.xml格式 将其存储为sample.xml  Tag:使用<>包围的部分  Element:被Tag包围的部分,例如22中的22  Attrib ...

  6. Python数据提取-lxml模块

    更多python教程请到友情连接: 菜鸟教程https://www.piaodoo.com 初中毕业读什么技校 http://cntkd.net 茂名一技http://www.enechn.com p ...

  7. python读取txt、csv以及xml文件

    1.读取txt文件 txt文件是经常需要被操作的文件类型,python提供了以下几种常见的读取txt文件的方式: * read():              读取整个文件 * readline(): ...

  8. Python下使用tarfile模块来实现文件归档压缩与解压

    Python下使用tarfile模块来实现文件归档压缩与解压   部分转自:http://www.diybl.com/course/3_program/python/20110510/555345.h ...

  9. Webstorm里面创建XMl文件

    先忽略我已经有了xml文件,给大家说一下怎么在Webstorm里创建xml文件 一.文件-New-编辑文件模板 二.+ - 输入XML File-输入xml-输入xml模板-点击启用-应用-确定 三. ...

最新文章

  1. Microbiome:应用多维宏组学方法协同揭示复杂细菌群落对目标底物代谢的菌间相互关系(一作解读)...
  2. php-fpm 启动参数及重要配置详解
  3. 四周第四次课(1月5日) 6.1 压缩打包介绍 6.2 gzip压缩工具 6.3 bzip2压缩工具 6.4 xz压缩工具...
  4. c语言中fflushstdin作用,C语言fflush(stdin)函数是什么意思,在什么情况下用它
  5. Android应用程序键盘(Keyboard)消息处理机制分析(26)
  6. oracle EBS grant 您不具有执行当前操作的足够权限。请与您的系统管理员联系。...
  7. 公文字体字号标准2020_一文了解公文格式规范,图文并茂(建议收藏备用)
  8. LogMeIn远程控制
  9. 极速安装JumpServer - 官方文档版
  10. iOS开发之保存照片到自己创建的相簿
  11. 详解DFT的scan(边界扫描)
  12. 静态ip设置失败解决办法
  13. Python:实现通过 isbn 搜索书籍算法(附完整源码)
  14. Raspberry3B+搭建有线路由器-实现网口转发
  15. 淘宝天猫春节照常发货—轻轻松松“淘宝式过年”
  16. 基于BK蓝牙RW-BLE协议栈调度逻辑梳理
  17. Android Audio - 支持多个APK同时录音
  18. iPad/iPhone等设备访问Windows共享文件方法
  19. Deploy k8s(1.25)
  20. Go lang1.18入门精炼教程——第一章:环境搭建

热门文章

  1. 一个 wince 开发经验的杰出blog
  2. 第四季-专题9-Linux驱动开发前奏
  3. 2.JAVA-基础语法以及String的介绍
  4. elk-Logstash
  5. NVIDIA驱动瘫痪再重装的问题
  6. linux虚拟机网络配制方法及遇到问题的解决方法
  7. hdu 2184 01背包变形
  8. 微软.NET程序员必上的网站
  9. 【Hadoop】java.io.IOException: Failed on local exception: java.nio.channels.ClosedByInterruptException
  10. 【Java】Springboot项目中jar包加密