前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >python读取xml格式的文件

python读取xml格式的文件

作者头像
生信修炼手册
发布于 2020-05-25 07:44:11
发布于 2020-05-25 07:44:11
2.4K00
代码可运行
举报
文章被收录于专栏:生信修炼手册生信修炼手册
运行总次数:0
代码可运行

欢迎关注”生信修炼手册”!

xml是一种可扩展的标记语言, 是互联网中数据存储和传输的一种常用格式,遵循树状结构的方式,在各个节点中存储用户自定义的数据,一个xml文件示例如下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?xml version="1.0"?>
<data>
    <country name="Liechtenstein">
        <rank>1</rank>
        <year>2008</year>
        <gdppc>141100</gdppc>
        <neighbor name="Austria" direction="E"/>
        <neighbor name="Switzerland" direction="W"/>
    </country>
    <country name="Singapore">
        <rank>4</rank>
        <year>2011</year>
        <gdppc>59900</gdppc>
        <neighbor name="Malaysia" direction="N"/>
    </country>
    <country name="Panama">
        <rank>68</rank>
        <year>2011</year>
        <gdppc>13600</gdppc>
        <neighbor name="Costa Rica" direction="W"/>
        <neighbor name="Colombia" direction="E"/>
    </country>
</data>

整个文档以固定的xml标记以及版本号开头,接下来以标签嵌套的形式构成,形成了一个树状结构,具有相同缩进的标签属于树状结构中的同一层级。

每个标签具备以下几个基本特征

  1. 标签名,比如上述列子中的data, country等就是标签名
  2. 属性,比如country标签中的name属性,以key=value的形式构成,一个标签可以有多个属性
  3. 内容,在标签之间的值,比如上述例子中第一个rank标签的内容为1

标签,属性,内容都可以根据用户的需求来自定义,所以xml文件非常的灵活。在python中,有多个模块都支持xml文件的处理,列表如下

  1. xml.etree.ElementTree
  2. xml.dom
  3. xml.dom.minidom
  4. xml.dom.pulldom
  5. xml.parsers.expat

其中,第一个模块更加轻便简介,对于简单的xml文档,推荐使用。基本用法如下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> import xml.etree.ElementTree
>>> from  xml.etree.ElementTree import parse
>>> xml = parse('input.xml')
# 获取根节点标签
>>> root = xml.getroot()
# 对于每个节点,都要tag和attrib两个属性
# tag对应标签名
>>> root.tag
'data'
# attrib对应标签的属性,是一个字典
>>> root.attrib
{}

对于root节点,可以通过遍历的形式来访问对应的子节点,用法如下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> for child in root:
...     print(child.tag, child.attrib)
...
country {'name': 'Liechtenstein'}
country {'name': 'Singapore'}
country {'name': 'Panama'}

实际应用中,更多的是访问特定标签中的内容,通过iter方法可以根据标签名访问特定标签,用法如下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> for neighbor in root.iter('neighbor'):
...     print(neighbor.get('name'))
...
Austria
Switzerland
Malaysia
Costa Rica
Colombia

get方法用于获取特定属性的值,findall方法则可以根据标签名或者xpath语法访问特定标签,用法如下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> for country in root.findall("country"):
...     year = country.find('year')
...     print(year.text)
...
2008
2011
2011

上述代码中,find方法用于查找当前标签下的子标签,text属性对应标签中的内容。通过上述几个方法,已经可以轻松获取特定标签的内容了。

除此之外,该模块还支持通过xpah语法来寻找特定的标签,具体的用法请查看官方的API说明。

·end·

—如果喜欢,快分享给你的朋友们吧—

原创不易,欢迎收藏,点赞,转发!生信知识浩瀚如海,在生信学习的道路上,让我们一起并肩作战!

本公众号深耕耘生信领域多年,具有丰富的数据分析经验,致力于提供真正有价值的数据分析服务,擅长个性化分析,欢迎有需要的老师和同学前来咨询。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-05-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信修炼手册 微信公众号,前往查看

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Python之路【第八篇】:Python
在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码会越来越长,越来越不容易维护。
py3study
2020/01/16
1.1K0
Python之路【第八篇】:Python
python xml.etree.El
We have a number of ways to import the data. Reading the file from disk:
py3study
2020/01/14
2720
python xml模块
xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单,不过,古时候,在json还没诞生的黑暗年代,大家只能选择用xml呀,至今很多传统公司如金融行业的很多系统的接口还主要是xml。
py3study
2018/08/02
5750
Python指南:文件处理
哪种文件格式最适合用于存储整个数据集——二进制、文本还是XML?这严重依赖于具体的上下文。
王强
2018/08/09
1.3K0
Python指南:文件处理
python处理testlink
在软件活动中,我们需要对测试用例进行管理,如果只用excel,不用管理工具系统的管理,那么将出现以下一些问题: 案例文件分散,测试进度不透明; 需求变更导致的测试计划/测试用例变更,未能及时通知相关测试人员; 版本管理困难,很难追踪版本的变化; 缺陷管理与测试用例管理脱节,不便于缺陷密度的分析; 产品需求、测试计划、测试用例未能建立关联,不便于测试过程管理; 缺乏相关的测试分析报告数据,不便于暴露测试风险;
赵云龙龙
2019/09/03
2.1K0
python处理testlink
[接口测试 - 基础篇] 05 好讨厌的xml解析
概述 什么是XML? XML 指可扩展标记语言(eXtensible Markup Language)。 XML 被设计用来传输和存储数据。 XML是一套定义语义标记的规则,这些标记将文档分成许多部件并对这些部件加以标识。 它也是元标记语言,即定义了用于定义其他与特定领域有关的、语义的、结构化的标记语言的句法语言。 xml构成 XML由3个部分构成,它们分别是: 文档类型定义(Document Type Definition,DTD),即XML的布局语言 可扩展的样式语言(Extensible Style
苦叶子
2018/04/09
9850
关于带命名空间的中文XML的解析
本来感觉XML文件解析是一件很简单的事情,结果折腾了一两周没什么进展,直到昨天才陆陆续续找到了一些解决方案,现在把踩坑过程和解决过程一并叙说一遍。
python与大数据分析
2022/03/11
7240
python处理xml
XML格式类型是节点嵌套节点,对于每一个节点均有以下功能,以便对当前节点进行操作:
菲宇
2019/06/11
1.5K0
[快学Python3]XML解析处理 - Element Tree
概述 本文就是python xml解析进行讲解,在python中解析xml有很多种方法,本文通过实例来讲解如何使用ElementTree来解析xml。对于其他的xml解析方法,请自行去查找资料。 请注意,本文不是ElementTree手册,不会将所有的特性进行演示,笔者从实际用到的一些关键特性进行实例演示,对于其他特性,大家可以参见官方文档学习和了解: https://docs.python.org/3/library/xml.etree.elementtree.html 什么是ElementTree El
苦叶子
2018/04/09
2.9K0
Python 基于xml.etree.ElementTree实现XML对比
测试环境 Python 3.6 Win10 代码实现 #!/usr/bin/env python 3.4.0 #-*- encoding:utf-8 -*- __author__ = 'shouke' import xml.etree.ElementTree as ET def compare_xml_node_attributes(xml_node1, xml_node2): result = [] node1_attributes_dict = xml_node1.attrib
授客
2022/12/13
9090
Python学习--xml-Elemen
当你需要解析和处理 XML 的时候,Python 表现出了它 “batteries included” 的一面。 标准库 中大量可用的模块和工具足以应对 Python 或者是 XML 的新手。
py3study
2020/01/07
8480
三十二、python操作XML文件
''' XML:模块 xml总结 1、解析 str 文件 tree,ElementTree,type root,Element,type 2、操作 Element: tag,text,find,iter,get,set... 3、重新写入 tree.write() str没有tree--->ElementTree(root) tree.write(xx,encoding='utf-8',xxx,xxx) 4、创建xml Eleme
py3study
2020/01/08
9960
Python - xml模块
标签>>: country 、标签属性>>: {'name': 'Panama'}
py3study
2020/01/10
7370
Python - xml模块
常用模块补充,内置函数,异常处理
shutil.copyfileobj(fsrc, fdst[, length]) 将文件内容拷贝到另一个文件中
py3study
2020/01/19
1.6K0
常用模块补充,内置函数,异常处理
[935]python解析xml文件
XML 指可扩展标记语言(eXtensible Markup Language)。
周小董
2021/01/29
1.5K0
[转载] python 解析xml 文件
首先新建一个xml文件,countries.xml。内容是在python官网上看到的。
py3study
2020/01/19
1.4K0
常用模块
## 一、time与datetime模块 在Python中,通常有这几种方式来表示时间:
hankleo
2020/09/16
1.6K0
常用模块
Python全栈开发-常用模块学习
  模块:用来从逻辑上组织python代码(变量、函数、类、逻辑:实现一个功能),本质就是.py结尾的python文件(文件名:test.py,模块名就是:test)
公众号---人生代码
2019/09/09
8680
Python全栈开发-常用模块学习
Python 常用内置模块详解
OS模块提供了多数操作系统的功能接口函数,当OS模块被导入后,它会自适应于不同的操作系统平台,根据不同的平台进行相应的操作,在Python编程时,经常和文件、目录打交道,所以离不了OS模块,OS模块也是在开发中最常用到的模块之一,本节内容将对OS模块提供的函数进行详细的解读,先来看一下OS模块的常用参数吧.
王瑞MVP
2022/12/28
1.3K0
3.模块Ⅱ
常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀。
changxin7
2019/09/10
1.2K0
3.模块Ⅱ
相关推荐
Python之路【第八篇】:Python
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档