end
,然后判断元素的tag是否为location,以及其文本值是否符合目标值 。另外,调用elem.clear
非常关键:因为iterparse
仍然会生成一个树,只是循序生成的而已 。废弃掉不需要的元素,就相当于废弃了整个树,释放出系统分配的内存 。
当利用上面这个脚本解析同一个文件时,内存使用峰值只有7MB,运行时间为2.5秒 。速度提升的原因,是我们这里只在树被构建时,遍历一次 。而使用 parse
的标准方法是先完成整个树的构建后,才再次遍历查找所需要的元素 。
iterparse
的性能与SAX相当,但是其API却更加有用:iterparse
会循序地构建树;而利用SAX时,你还得自己完成树的构建工作 。
推荐阅读
- 浅谈Python深浅拷贝
- 源码 用python一天爬取20万条企业信息
- 浏览器 1 秒变身 Python 编辑器
- 高效利用Python内置的数据结构
- python 文本处理
- 用Python抢火车票的简单小程序
- 机器学习10种经典算法的Python实现
- 用Python构建深度学习应用
- 高考材料作文新题解析及范文 高考材料作文
- java程序运行原理解析