gpt4 book ai didi

python - XML 解析卡在大(但不是那么大)文件上

转载 作者:太空宇宙 更新时间:2023-11-04 03:00:37 25 4
gpt4 key购买 nike

我正在使用 python 的优秀 xml 模块来处理我拥有的一些 xml 文件。其中一个文件超过 250 MB。解析时,它似乎挂起。运行 top 显示它正在慢慢填满我的内存,然后开始交换,但在一个多小时内没有返回(此时我终止进程并搜索 SO)。

我是这样盯着这个过程的:

>>> import xml.etree.ElementTree as ET
>>> tree = ET.parse('some_xml_file.xml')

但这就是我的任何尝试。较小的文件工作得很好,但这个大文件会破坏一切。

是什么填满了我的全部 (4 GB) 内存,我该如何避免这种情况?

最佳答案

xml.etree.ElementTree documentation是否记录了这一段:

If you don’t mind your application blocking on reading XML data but would still like to have incremental parsing capabilities, take a look at iterparse(). It can be useful when you’re reading a large XML document and don’t want to hold it wholly in memory.

考虑使用 iterparse()增量方式处理您的 XML 文件。

此外,您应该考虑切换到 lxml.etree因为它通常速度更快,内存更友好,来源:

关于python - XML 解析卡在大(但不是那么大)文件上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41025905/

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