位置: 编程技术 - 正文

横向对比分析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使用指南

  • 什么是所得税税负
  • 一般纳税人收到专票怎么认证
  • 购物税费怎么算
  • 没有增值税专用发票开具证明
  • 网上代增值税专用发票流程
  • 小企业会计准则2023电子版
  • 工程施工计入资产负债表
  • 增值税起征点的规定只适用于
  • 未核定印花税
  • 长期股权投资的初始投资成本
  • 增值税出口免退什么意思
  • 购入材料过程中支付运费
  • 拖欠供应商货款
  • 多出来的费用
  • 当月计提的增值税是什么
  • 增值税专用发票抵扣期限
  • 股权投资损失该如何做账务处理及税前扣除相关规定
  • 法院的申请执行费用什么时候收取
  • 企业名称变更后原名称还能使用吗
  • 营改增后还有企业所得税吗?
  • 未担保余值是什么意思
  • 一级代理价格
  • 高新技术企业研发人员学历要求
  • linux常用命令make
  • 存货报废会计分录例题
  • app制作公司开发一个app的价格
  • 在承租的土地上建房
  • 既征增值税又征消费税的是
  • u盘格式化后怎么还原数据
  • 非货币性资产交换的记忆口诀
  • 录入财务凭证
  • 营改增之前的房子现在出售怎么开票
  • 高新技术企业税率15%
  • 违约金需要缴纳企业所得税吗
  • 如何写煎荷包蛋过程
  • php获取文件夹大小
  • nyud数据集
  • [paper] lift,splat,shooting 论文浅析
  • ln s命令
  • php读取文件内容
  • dedecms转eyoucms
  • 未开票收入如何做账
  • 合并报表少数股东权益是什么
  • 事务所的账务处理
  • 我向银行借钱我是贷方还是借方
  • Excel导入数据库出错
  • sql查询出各科成绩单
  • 资产负债表的固定资产怎么算出来的
  • 工厂加工费如何计算
  • 印花税漏报,税务局怎么罚款
  • 出差补贴如何账务处理
  • 金税盘技术维护费
  • 开具红字增值税专用发票信息表需要盖章吗
  • 预收账款过多,税务让说明原因
  • 小企业会计准则2023电子版
  • 出库单上面的单位写谁的
  • 企业应按照有关规定结合本企业
  • 应收账款是什么意思
  • 如何更换会计账号
  • win7系统IE浏览器打开跳转到360浏览器,怎么阻止
  • 如何安装和卸载抖音软件
  • win10预览版好吗
  • 明日之后白树高地怎么钓凤尾鱼
  • windows日历
  • linux服务器安全防护方案
  • Node.js开启Https的实践详解
  • android中数据存储
  • unity如何避免碰撞穿透
  • css position: absolute、relative详解
  • 安全工具有哪些
  • es6新方法有哪些
  • Javascript中的this
  • javascript小数四舍五入多种方法实现
  • 自定义progressbar
  • jquery校验
  • python listnode
  • 无自然人登记信息是怎么回事
  • 国家医保平台查不到住院记录
  • 河北云办税厅2.0登录
  • 安徽省滁州市税务局地址
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设