gpt4 book ai didi

python - 在python中从大量xml文件中提取信息的最有效方法是什么?

转载 作者:数据小太阳 更新时间:2023-10-29 02:18:24 26 4
gpt4 key购买 nike

我有一个包含 XML 文件的完整目录(~103、104),我需要从中提取几个字段的内容。我已经测试了不同的 xml 解析器,并且由于我不需要验证内容(昂贵)我正在考虑简单地使用 xml.parsers.expat(最快的)来浏览文件,一个一个地提取数据。

  1. 有没有更有效的方法? (简单的文本匹配不起作用)
  2. 我是否需要为每个新文件(或字符串)发出一个新的 ParserCreate(),或者我是否可以为每个文件重复使用相同的一个?
  3. 有什么注意事项吗?

谢谢!

最佳答案

通常,我会建议使用 ElementTree 的 iterparse ,或者对于超速,它对应于 lxml .也尝试使用 Processing (内置于 2.6 中)以并行化。

iterparse 的重要之处在于,您可以在解析元素(子)结构时获取它们。

import xml.etree.cElementTree as ET
xml_it = ET.iterparse("some.xml")
event, elem = xml_it.next()
在这种情况下,

event 将始终是字符串 "end",但您也可以初始化解析器,以便在解析新元素时也告诉您有关它们的信息。您无法保证此时所有子元素都已被解析,但如果您只对此感兴趣,属性就在那里。

另一点是您可以提前停止从迭代器读取元素,即在处理整个文档之前。

如果文件很大(是吗?),就像在流式解析器中一样,有一个常用的习惯用法来保持内存使用不变。

关于python - 在python中从大量xml文件中提取信息的最有效方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/344559/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com