位置: 编程技术 - 正文

横向对比分析Python解析XML的四种方式(横向对比分析两个人关系的意义)

编辑:rootadmin

推荐整理分享横向对比分析Python解析XML的四种方式(横向对比分析两个人关系的意义),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:横向对比分析法,横向对比分析优势,横向对比分析表格,横向对比分析法和纵向对比分析法的区别,横向对比分析怎么写,横向对比分析法和纵向对比分析法的区别,横向对比分析法和纵向对比分析法的区别,横向对比分析法,内容如对您有帮助,希望把文章链接给更多的朋友!

在最初学习PYTHON的时候,只知道有DOM和SAX两种解析方法,但是其效率都不够理想,由于需要处理的文件数量太大,这两种方式耗时太高无法接受。

在网络搜索后发现,目前应用比较广泛,且效率相对较高的ElementTree也是一个比较多人推荐的算法,于是拿这个算法来实测对比,ElementTree也包括两种实现,一个是普通ElementTree(ET),一个是ElementTree.iterparse(ET_iter)。

本文将对DOM、SAX、ET、ET_iter四种方式进行横向对比,通过处理相同文件比较各个算法的用时来评估其效率。

程序中将四种解析方法均写为函数,在主程序中分别调用,来评估其解析效率。

解压后的XML文件内容示例为:

主程序函数调用部分代码为:

在最初的函数调用中函数返回两个值,但接收函数调用值时用两个变量分别调用,导致每个函数都要执行两次,之后修改为一次调用两个变量接收返回值,减少了无效调用。

1、DOM解析

函数定义代码:

程序运行结果:

**************************************************程序处理启动。输入目录为:/tmcdata/mro2csv/input/。输出目录为:/tmcdata/mro2csv/output/。输入目录下.gz文件个数为:,本次处理其中的个。**************************************************文件计数:1/.已读入:/tmcdata/mro2csv/input/TD-LTE_MRO_NSN_OMC__.xml.gz.解析中:文件计数:2/.已读入:/tmcdata/mro2csv/input/TD-LTE_MRO_NSN_OMC__.xml.gz.解析中:文件计数:3/.已读入:/tmcdata/mro2csv/input/TD-LTE_MRO_NSN_OMC__.xml.gz.解析中:………………………………………文件计数:/.已读入:/tmcdata/mro2csv/input/TD-LTE_MRO_NSN_OMC__.xml.gz.解析中:VS行计数:,运行时间:.,每秒处理行数:。已写入:/tmcdata/mro2csv/output/mro_.csv。

横向对比分析Python解析XML的四种方式(横向对比分析两个人关系的意义)

**************************************************程序处理结束。由于DOM解析需要将整个文件读入内存,并建立树结构,其内存消耗和时间消耗都比较高,但其优点在于逻辑简单,不需要定义回调函数,便于实现。

2、SAX解析

函数定义代码:

程序运行结果:

**************************************************程序处理启动。输入目录为:/tmcdata/mro2csv/input/。输出目录为:/tmcdata/mro2csv/output/。输入目录下.gz文件个数为:,本次处理其中的个。**************************************************文件计数:1/.已读入:/tmcdata/mro2csv/input/TD-LTE_MRO_NSN_OMC__.xml.gz.解析中:文件计数:2/.已读入:/tmcdata/mro2csv/input/TD-LTE_MRO_NSN_OMC__.xml.gz.解析中:文件计数:3/.已读入:/tmcdata/mro2csv/input/TD-LTE_MRO_NSN_OMC__.xml.gz.解析中:.........................................文件计数:/.已读入:/tmcdata/mro2csv/input/TD-LTE_MRO_NSN_OMC__.xml.gz.解析中:VS行计数:,运行时间:.,每秒处理行数:。已写入:/tmcdata/mro2csv/output/mro_.csv。

**************************************************程序处理结束。SAX解析相比DOM解析,运行时间大幅缩短,由于SAX采用逐行解析,对于处理较大文件其占用内存也少,因此SAX解析是目前应用较多的一种解析方法。其缺点在于需要自己实现回调函数,逻辑较为复杂。

3、ET解析

函数定义代码:

程序运行结果:

**************************************************程序处理启动。输入目录为:/tmcdata/mro2csv/input/。输出目录为:/tmcdata/mro2csv/output/。输入目录下.gz文件个数为:,本次处理其中的个。**************************************************文件计数:1/.已读入:/tmcdata/mro2csv/input/TD-LTE_MRO_NSN_OMC__.xml.gz.解析中:文件计数:2/.已读入:/tmcdata/mro2csv/input/TD-LTE_MRO_NSN_OMC__.xml.gz.解析中:文件计数:3/.已读入:/tmcdata/mro2csv/input/TD-LTE_MRO_NSN_OMC__.xml.gz.解析中:...........................................文件计数:/.已读入:/tmcdata/mro2csv/input/TD-LTE_MRO_NSN_OMC__.xml.gz.解析中:VS行计数:,运行时间:4.,每秒处理行数:。已写入:/tmcdata/mro2csv/output/mro_.csv。

**************************************************程序处理结束。相较于SAX解析,ET解析时间更短,并且函数实现也比较简单,所以ET具有类似DOM的简单逻辑实现且匹敌SAX的解析效率,因此ET是目前XML解析的首选。

4、ET_iter解析

函数定义代码:

程序运行结果:

**************************************************程序处理启动。输入目录为:/tmcdata/mro2csv/input/。输出目录为:/tmcdata/mro2csv/output/。输入目录下.gz文件个数为:,本次处理其中的个。**************************************************文件计数:1/.已读入:/tmcdata/mro2csv/input/TD-LTE_MRO_NSN_OMC__.xml.gz.解析中:文件计数:2/.已读入:/tmcdata/mro2csv/input/TD-LTE_MRO_NSN_OMC__.xml.gz.解析中:文件计数:3/.已读入:/tmcdata/mro2csv/input/TD-LTE_MRO_NSN_OMC__.xml.gz.解析中:...................................................文件计数:/.已读入:/tmcdata/mro2csv/input/TD-LTE_MRO_NSN_OMC__.xml.gz.解析中:VS行计数:,运行时间:3.,每秒处理行数:。已写入:/tmcdata/mro2csv/output/mro_.csv。

**************************************************程序处理结束。在引入了ET_iter解析后,解析效率比ET提升了近%,而相较于DOM解析更是提升了倍,在解析效率提升的同时,由于其采用了iterparse这个循序解析的工具,其内存占用也是比较小的。

所以,小伙伴们,请好好利用这几种工具吧。

标签: 横向对比分析两个人关系的意义

本文链接地址:https://www.jiuchutong.com/biancheng/384414.html 转载请保留说明!

上一篇:python简单实现刷新智联简历

下一篇:Python内置的HTTP协议服务器SimpleHTTPServer使用指南

  • 表见代理通俗
  • 一般纳税人劳务公司可以开3%的发票吗
  • 投资性公司怎么判断?
  • 公司控股另一家公司的风险
  • 预缴所得税更正怎么操作
  • 年金个税税率表
  • 高新技术企业所得税减免怎么算
  • 高管个人所得税政策
  • 应收账款未收到是否要交税
  • 委外研发费用如何开票
  • 营改增后应付职工薪酬如何核算个人所得税?
  • 货币的时间价值名词解释
  • 出口退税报关单解密在哪下载
  • 汽车修理费需要交印花税吗
  • 土地一次开发和二次开发
  • 个税返还手续费增值税申报填在哪里
  • 没有及时对公账户
  • 合伙企业营业执照多少钱
  • 个人租车给单位合同怎么写
  • 进口关税和增值税在哪里交
  • 华为折叠手机mateX5价格
  • 公司注册资金抽逃
  • 个人所得税算少了怎么办
  • thinkphp 模型
  • os x yosemite dp5下载地址 os x 10.10 dp5更新内容
  • PHP:mb_internal_encoding()的用法_mbstring函数
  • 增值税发票红字信息表
  • vue3 vue.config.js配置Element-plus组件和Icon图标实现按需自动引入
  • 股权名称应该填什么?
  • 固定资产折旧加计扣除
  • 市盈率和市净率多少比较合适
  • vscode搭建vue项目
  • vgreduce --removemissing
  • 研发费用加计扣除新税收政策
  • 往来款的意思
  • 增值税专票三联都丢了写情况说明可以吗
  • pycharm cant find main
  • python缩进有什么作用
  • 工资薪金个人所得税在哪里申报
  • 资产负债表中所有者权益合计怎么算
  • 劳务费可以开普票吗
  • 申请开立账户的请示
  • mysql数据类型和索引
  • 有限合伙企业成本费用抵扣
  • 增值税专用发票查询系统官方网站
  • 机构信用代码证在哪里办理
  • 企业如何在没有税务登记
  • 建筑行业收到的工程转给项目经理成本票从哪来
  • 企业法人个人贷款企业承担吧?
  • 公司给的佣金需要上多少税
  • 飞机票保险发票是什么样子的
  • 无形资产投资入股是否缴纳企业所得税
  • 会计凭证装订的心得体会
  • sql语句实现查询示例
  • linux实现mysql数据库每天自动备份定时备份
  • sqlserver临时表 效率
  • Centos MySQL 5.7安装、升级教程
  • windows server2008 64位没有安装音频怎么办?
  • macbookair安装rosetta
  • windows超级管理员默认密码
  • win7旗舰版如何升级到win10
  • 关闭迅雷安卓版自动更新
  • 如何用bat删除指定文件
  • unity3d的
  • unityai寻路
  • jquery 选择
  • Nodejs sublime text 3安装与配置
  • 用python做逻辑回归
  • unity错误cs1002
  • nodejs怎么连接mysql
  • javascript的
  • js测试工具
  • javascript要怎么学
  • 非常棒的jQuery图片轮播效果
  • 浅谈jQuery中ajaxPrefilter的应用
  • 抓落实韧劲不足的具体表现
  • 快递代缴的关税有税单吗
  • 江西省国税局全称
  • 湖南什么时候实行电子驾驶证
  • 什么是集体约谈制
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设