gpt4 book ai didi

python - 加载大文件时显示 python 的 XML 解析器的进度

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

我使用 Python 内置的 XML 解析器加载一个 1.5 gig 的 XML 文件,这需要一整天。

from xml.dom import minidom
xmldoc = minidom.parse('events.xml')

我需要知道如何进入其中并衡量其进度,以便显示进度条。 有什么想法吗?

minidom 有另一个叫做 parseString() 的方法,假设你传递给它的字符串是有效的 XML,它返回一个 DOM 树,如果我自己把文件分成 block ,然后一次一个地传递给 parseString,我能不能最后将所有 DOM 树重新合并在一起?

最佳答案

您的用例要求您使用 sax 解析器而不是 dom,dom 将所有内容加载到内存中,而 sax 将逐行解析,您可以根据需要为事件编写处理程序这样可能会有效,您也可以编写进度指示器

我还建议有时尝试 expat 解析器,它非常有用 http://docs.python.org/library/pyexpat.html

使用 sax 的进步:

当 sax 以增量方式读取文件时,您可以用自己的文件对象包装您传递的文件对象,并跟踪已读取了多少。

编辑:我也不喜欢自己拆分文件并在最后加入 DOM 的想法,这样你最好编写自己的 xml 解析器,我建议改用 sax 解析器我还想知道您在 DOM 树中读取 1.5 gig 文件的目的是什么?看起来萨克斯在这里会更好

关于python - 加载大文件时显示 python 的 XML 解析器的进度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1001871/

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