前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python: .xml文件 操作

python: .xml文件 操作

作者头像
JNingWei
发布2018-09-27 14:47:27
1.5K0
发布2018-09-27 14:47:27
举报
文章被收录于专栏:JNing的专栏JNing的专栏

.xml 读取

我的.xml文件如下:

这里写图片描述
这里写图片描述

Code

通过如下代码模板,可实现对.xml文件的信息快捷读取:

代码语言:javascript
复制
# 导入库文件
from xml.etree.ElementTree import ElementTree, Element

# 指定.xml文件地址
XML_PATH = "/Users/megvii/Desktop/Retail/001.xml"

def main():

    tree = ElementTree()
    tree.parse(XML_PATH)

    # 对一级text的获取
    folder = tree.find('folder').text  # milkpowder
    filename = tree.find('filename').text  # image005.png
    path = tree.find('path').text  # ../../image005.png

    size = tree.find('size')
    size_width = size.find('width').text  # 1440
    size_height = size.find('height').text  # 1080
    size_depth = size.find('depth').text  # 3

    segmented = tree.find('segmented').text  # 0

    # 对所有object的获取
    objs = tree.findall('object')

    # 对每个子object分别进行text获取
    for idx in range(len(objs)):
        tag = objs[idx].find('name').text
        x1 = int(round(float(objs[idx].find('bndbox').find('xmin').text)))
        y1 = int(round(float(objs[idx].find('bndbox').find('ymin').text)))
        x2 = int(round(float(objs[idx].find('bndbox').find('xmax').text)))
        y2 = int(round(float(objs[idx].find('bndbox').find('ymax').text)))
        bbox = [x1, y1, x2, y2]


if __name__ == "__main__":
    main()

.xml 修改文本

代码语言:javascript
复制
# 导入库文件
from xml.etree.ElementTree import ElementTree, Element

# 指定.xml文件地址
XML_PATH = "/Users/megvii/Desktop/001.xml"


def main():

    tree = ElementTree()
    tree.parse(XML_PATH)
    objs = tree.findall('object')

    # 修改 指定属性 的 文本
    objs[0].find('name').text = "Nanjing"

    # 将新的tree覆盖写入原xml文件
    tree.write(XML_PATH, encoding="utf-8")


if __name__ == "__main__":
    main()

成功将第一个“object”项的”name”属性的文本改为了“Nanjing”:

这里写图片描述
这里写图片描述

Summary

.xml文件信息的存放类似于多级的字典(dict)。 因此,通过xml.etree.ElementTree库对.xml文件信息的读取,其实就是在分级text下对指定key进行的value读取。


[1] Python xml属性/节点/文本的增删改[xml.etree.ElementTree]

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年04月16日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • .xml 读取
  • Code
  • .xml 修改文本
  • Summary
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档