python xml读写

2023-05-16

1. xml例子
<?xml version="1.0" encoding="UTF-8"?>
<annotation>
  <folder>VOC2007</folder>
  <filename>01240001.jpg</filename>
  </object>
  <object>
    <name>like</name>
    <pose>Unspecified</pose>
    <bndbox>
      <xmin>211</xmin>
      <ymin>152</ymin>
      <xmax>239</xmax>
      <ymax>194</ymax>
    </bndbox>
  </object>
</annotation>
2.xml读

    举个读box中xmin、xmax、ymin、ymax以及类名的例子:

import xml.dom.minidom
dom = xml.dom.minidom.parse( xml_path ) #用于打开一个xml文件,并将这个文件对象dom变量。                                                
root = dom.documentElement #用于得到dom对象的文档元素,并把获得的对象给root
    
name_lst = []
lst_temp = root.getElementsByTagName("name")
for i in range(len(lst_temp)):
    l = lst_temp[i].firstChild.data
    if l in class_name:
       name_lst.append(l)    
                    
xmin_lst1 = root.getElementsByTagName("xmin")
ymin_lst1 = root.getElementsByTagName("ymin")
xmax_lst1 = root.getElementsByTagName("xmax")
ymax_lst1 = root.getElementsByTagName("ymax")
num = min(len(xmin_lst1), len(name_lst))
xmin_lst = []
xmax_lst = []
ymin_lst = []
ymax_lst = []
for i in range(num):
     xmin = int(xmin_lst1[i].firstChild.data)
     xmax = int(xmax_lst1[i].firstChild.data)
     ymin = int(ymin_lst1[i].firstChild.data)
     ymax = int(ymax_lst1[i].firstChild.data)
    
     #print type(xmin_lst1[i].firstChild.data) #<type 'unicode'>
 

3. 写xml
   # 创建dom文档
    doc = Document()
    # 创建根节点
    orderlist = doc.createElement('annotation')
    # 根节点插入dom树
    doc.appendChild(orderlist)
    
    # 每一组信息先创建节点<folder>,然后插入到父节点<orderlist>下
    folder = doc.createElement('folder')
    orderlist.appendChild(folder)
    # 创建<folder>下的文本节点
    folder_text = doc.createTextNode("VOC2007")
    # 将文本节点插入到<folder>下
    folder.appendChild(folder_text)
    
    filename = doc.createElement('filename')
    orderlist.appendChild(filename)
    filename_text = doc.createTextNode(file)
    filename.appendChild(filename_text)
    for i in range(num):
	object = doc.createElement('object')
	orderlist.appendChild(object)
	name = doc.createElement('name')
	object.appendChild(name)
	name_text = doc.createTextNode(name_lst[i])
	name.appendChild(name_text)
		
	pose = doc.createElement('pose')
	object.appendChild(pose)
	pose_text = doc.createTextNode("Unspecified")
	pose.appendChild(pose_text)
				
        #########
	bndbox = doc.createElement('bndbox')
	object.appendChild(bndbox)
	xmin = doc.createElement('xmin')
	bndbox.appendChild(xmin)
	xmin_text = doc.createTextNode(str(xmin_lst[i]))
	xmin.appendChild(xmin_text)
		
	ymin = doc.createElement('ymin')
	bndbox.appendChild(ymin)
	ymin_text = doc.createTextNode(str(ymin_lst[i]))
	ymin.appendChild(ymin_text)
		
	xmax = doc.createElement('xmax')
	bndbox.appendChild(xmax)
	xmax_text = doc.createTextNode(str(xmax_lst[i]))
	xmax.appendChild(xmax_text)
		
	ymax = doc.createElement('ymax')
	bndbox.appendChild(ymax)
	ymax_text = doc.createTextNode(str(ymax_lst[i]))
	ymax.appendChild(ymax_text)
		
with open(save_xml_dir + "/" + file[:len(file)-4] + ".xml", 'w') as f:
    f.write(doc.toprettyxml(indent='\t', encoding='utf-8'))


   



本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python xml读写 的相关文章

  • Python Numpy TypeError:输入类型不支持 ufunc 'isfinite'

    这是我的代码 def topK dataMat sensitivity meanVals np mean dataMat axis 0 meanRemoved dataMat meanVals covMat np cov meanRemov
  • Python:我可以修改元组吗?

    我有一个 2 D 元组 实际上我以为 它是一个列表 但错误说它是一个元组 但无论如何 该元组的形式为 浮点数 val prod id 现在我有一个字典 其中包含 key gt prod id 和 value prod name 现在 我想将
  • Python中的键盘可中断阻塞队列

    It seems import Queue Queue Queue get timeout 10 键盘可中断 ctrl c 而 import Queue Queue Queue get 不是 我总是可以创建一个循环 import Queue
  • 是否可以在 SQLAlchemy 中创建一个可以创建父记录的事件侦听器?

    有两个表 父表和子表 我想创建一个事件监听器 触发器 如果孩子没有父母 它可以创建父母 这就是我试图做的 class parent db Model tablename parent id db Column db Integer prim
  • 如何在Python中通过URL下载Azure Blob存储文件?

    我正在尝试从我的存储帐户下载 Azure Blob 存储文件 为此 我检查了 URL 是什么 并且正在执行以下操作 with urllib request urlopen
  • python 正则表达式中括号的奇怪行为

    我正在编写一个 python 正则表达式 它可以在文本文档中查找引用的字符串 从黑匣子中记录的航空公司飞行员的引用 我首先尝试编写具有以下规则的正则表达式 返回引号之间的内容 如果以 single 打开 则仅在以 single 关闭时返回
  • 为什么通过selenium切换到alert不稳定?

    为什么通过selenium切换到alert不稳定 例如 1 运行代码 一切顺利 一切都很顺利 但如果这段代码在几分钟内运行 那么可能会出现错误 例如 没有可以单击的元素 等等 2 在一个站点上有一个警报窗口 alert driver swi
  • 使用 boto 和 python 从带有参数的布局创建 mTurk HIT

    我正在尝试利用 boto 在 Mechanical Turk 中生成 HIT 目标是使用我的 mTurk 帐户上已生成的通用布局 并向其传递图像 URL 以迭代创建 HIT 问题是 即使正确命名参数 如果图像 url boto 也不成功 我
  • 如何将 NaN 数组插入 numpy 二维数组

    我试图在二维数组中的特定位置插入任意数量的 NaN 值行 我正在将来自微控制器的一些数据记录在 csv 文件中并使用 python 进行解析 数据存储在 3 列 2D 数组中 如下所示 122 0 1 0 47 0 123 0 1 0 47
  • OpenCV 在使用 anaconda 的 Linux 上无法与 python 正常工作。收到 cv2.imshow() 未实现的错误

    这就是我得到的确切错误 我的操作系统是 Ubuntu 16 10 OpenCV 错误 未指定错误 该功能未实现 使用 Windows GTK 2 x 或 Carbon 支持重新构建库 如果您使用的是 Ubuntu 或 Debian 请安装
  • 有没有办法在Python中调用子类定义的方法?

    The init 方法定义了创建类的实例时要执行的操作 创建子类时我可以做类似的事情吗 假设我有抽象类Entity class Entity def onsubclasscreation cls for var in cls annotat
  • 使用 pymongo 查询空字段

    我想使用 python 查询 mongo 中的空字段 但是它很难处理单词 null 或 false 它要么给我错误 它们在 python 中未定义 要么在 mongo 中搜索字符串 null 和 false 这两种情况我都不希望发生 col
  • 有没有更快的方法将数字转换为名称?

    以下代码定义了映射到数字的名称序列 它的设计目的是获取一个号码并检索一个特定的名称 该类通过确保名称存在于其缓存中来进行操作 然后通过索引到其缓存中来返回名称 问题在这 如何在不存储缓存的情况下根据数字计算出名称 该名称可以被认为是一个以
  • 让垂直网格线出现在 matplotlib 的线图中

    我想在绘图上同时获得水平和垂直网格线 但默认情况下仅显示水平网格线 我正在使用一个pandas DataFrame从 python 中的 sql 查询生成 x 轴上带有日期的线图 我不知道为什么它们没有出现在日期上 我试图寻找这个问题的答案
  • Python - Map/Reduce - 如何在使用 DISCO 计数单词示例中读取 JSON 特定字段

    我正在按照 DISCO 示例来计算文件中的单词数 将单词数作为 Map Reduce 作业 http discoproject org doc disco start tutorial html 我对此工作没有任何问题 但是我想尝试从包含
  • python中不规则点之间的坐标列表

    想象一下 我们为 x 和 y 随机选择两个介于 0 到 100 之间的点 例如 95 7 35 6 现在使用简单的 pygame draw line 函数 我们可以轻松地在这些点之间绘制一条没有任何间隙的线 我的问题是 我们如何找到两点之间
  • 了解 Tensorflow 中的 while 循环

    我正在使用用于 Tensorflow 的 Python API https www tensorflow org api docs python 我正在努力实施罗森布罗克函数 https www sfu ca ssurjano rosen
  • Kivy:滚动缩放

    有没有办法在桌面 kivy 应用程序上放大图像 例如使用鼠标滚轮缩放 这里似乎讨论过 https github com kivy kivy issues 3563 https github com kivy kivy issues 3563
  • 交响二阶颂歌

    我有一个简单的二阶 ODE 的齐次解 当我尝试使用 Sympy 求解初始值时 它返回相同的解 它应该替代 y 0 和 y 0 并产生一个没有常数的解 但事实并非如此 这是建立方程的代码 它是一个弹簧平衡方程 k 弹簧常数 m 质量 我在其他
  • 在大型文本文件中查找重复记录

    我在一台 Linux 机器 Redhat 上 并且有一个 11GB 的文本文件 文本文件中的每一行包含单个记录的数据 并且该行的前 n 个字符包含该记录的唯一标识符 该文件包含略多于 2700 万条记录 我需要验证文件中不存在具有相同唯一标

随机推荐

  • 开源数字人Fay

    原文 xff1a 别再因AI焦虑 xff0c 这波年轻人已经用 中国版ChatGPT 创业成功了 数字人 AI 创业 新浪新闻 开源 xff1a GitHub TheRamU Fay Fay是一个完整的开源项目 xff0c 包含Fay控制器
  • 推荐 3 个令你惊艳的 GitHub 项目

    原文 xff1a 推荐 3 个令你惊艳的 GitHub 项目 昨日 GitHub Trending 上榜的开源项目 xff0c 基于 AI 技术提高你的生产力 借助 AI 你能搭建自己的数字人 搭建自己的法律助手 文档分析助手 本期推荐开源
  • AI 数字人制作(方案一):输入一张图片和一段文字即可生成数字人

    方案一 xff1a 原文 xff1a AI 数字人制作 xff08 方案一 xff09 哔哩哔哩 bilibili AI 文字和图片生成数字人 输入一张图片和一段文字即可生成数字人 用三个开源项目整合成可以商用的数字人项目 文本生成语音开源
  • 大量数据情况下单线程插入和多线程insert数据库的性能测试

    大量数据情况下单线程插入和多线程insert数据库的性能测试 之前一直没有遇到过大批量数据入库的场景 xff0c 所以一直没有思考过在大量数据的情况下单线程插入和多线程插入的性能情况 今天在看一个项目源代码的时候发现使用了多线程insert
  • 查看tensorflow 安装目录

    使用命令 xff1a pip show f tensorflow 图和张量源码 xff1a C Program Files Anaconda3 Lib site packages tensorflow python framework op
  • FP-growth算法,fpgrowth算法详解

    FP growth算法 xff0c fpgrowth算法详解 使用FP growth算法来高效发现频繁项集 前言 你用过搜索引擎挥发现这样一个功能 xff1a 输入一个单词或者单词的一部分 xff0c 搜索引擎酒会自动补全查询词项 xff0
  • 如何将一个矩阵化为行阶梯形矩阵

    2016 03 29 尾巴 线性代数 有同学反映上一课过于冷冰冰 xff0c 都是一些不带证明的公式 如果线性代数所有公式都要证明的话 xff0c 线性代数的难度会上好几个量级 xff0c 有的公式的证明是特别特别难的 还有一个 xff0c
  • Activity启动模式与任务栈(Task)全面深入记录(上)

    转载请注明出处 xff08 谢谢 xff09 xff1a http blog csdn net javazejian article details 52071885 任务栈简单入门 最近又把两本进阶书看了一遍 xff0c 但总感觉好记性不
  • VSCode自定义代码片段3——url大全

    url大全 url 39 3 如何自定义用户代码片段 xff1a VSCode 61 左下角设置 61 用户代码片段 61 新建全局代码片段文件 61 自定义片段名称 61 编辑用户片段 61 ctrl 43 S 保存 url大全 34 P
  • mac中如何使用vsode愉快地运行C、C++程序

    闲来无事 xff0c 想在mac中写写C C 43 43 程序 xff0c 打开应用商店 xff0c 准备下个xcode玩玩 xff0c 结果小30G的空间占用直接劝退 因为一直使用vscode开发 xff0c 便萌生了使用插件来运行C C
  • CMake入门3之 静态链接库和动态链接库

    目录 目标 xff1a 环境 创建静态和动态链接库 文件准备 构建 安装静态链接库 使用静态链接库和动态库 使用动态库 使用静态库 目标 xff1a 构建静态链接库和动态链接库 xff0c 安装到系统 xff0c 写一个程序使用安装的静态链
  • 行人检测数据集

    MIT数据库 该数据库为较早公开的行人数据库 xff0c 共924张行人图片 xff08 ppm格式 xff0c 宽高为64 128 xff09 xff0c 肩到脚的距离约80象素 该数据库只含正面和背面两个视角 xff0c 无负样本 xf
  • opencv中solvePnPRansac函数求解相机位姿

    PnP xff08 Perspective n Points xff09 xff1a 2D 3D xff0c 求解相机位姿 PnP xff08 Perspective n Points xff09 就是你有n个点的3D位置和它们的投影 xf
  • 如何查看ubuntu下显卡驱动是否已经成功安装

    首先得安装 mesa utils xff0c 在终端输入命令 xff1a sudo apt get install mesa utils 然后再运行命令 xff1a glxinfo grep rendering 如果结果是 yes xff0
  • 深度学习笔记1:end-to-end、anchor box解释、人体检测代码

    SSD xff08 SSD Single Shot MultiBox Detector xff09 是采用单个深度神经网络模型实现目标检测和识别的方法 该方法是综合了Faster R CNN的anchor box和YOLO单个神经网络检测思
  • YOLO-darknet-on-Jetson-TX2

    YOLO darknet on Jetson TX2 https github com Alro10 YOLO darknet on Jetson TX2 software https blog csdn net cherry dr art
  • #error This file requires compiler and library support for the ISO C++ 2011错误解决办法

    CmakeLists txt 中添如下代码就OK include CheckCXXCompilerFlag CHECK CXX COMPILER FLAG 34 std 61 c 43 43 11 34 COMPILER SUPPORTS
  • docker pull 下来的镜像文件存放的位置

    参考文献 xff1a http www tuicool com articles bENrUf 1 存放在 var lib docker 2 repositories aufs 文件 xff1a 34 Repositories 34 34
  • docker主要命令整理

    docker docker info docker version docker images 展示镜像 docker ps 展示容器 docker ps a 会展示出所有正在运行的和已经停止的容器 docker rmi 镜像ID 删除镜像
  • python xml读写

    1 xml例子 lt xml version 61 34 1 0 34 encoding 61 34 UTF 8 34 gt lt annotation gt lt folder gt VOC2007 lt folder gt lt fil