0

我正在解析一个大小约为 9 GB 的非常大的 XML 文件。我已经尝试过这种.iterparse方法,根据我收集到的信息,这是完成这项任务的推荐方法。但是,这似乎需要太长时间。现在,我正在尝试实现一种多处理方法,尝试在不同的进程中解析感兴趣的元素。

我相信过去可以做到.iterparse('path_to_file.xml, events=("start", "end"), tag='some_tag),但看起来不再支持了。

所以,我想出的方法是这样的,

root = ET.parse('path_to_file.xml').getroot()

for element in root.iter('some_tag'):
   # do something

有没有更好的方法来解决这个问题?据我所知,这是一个内存密集型操作。

如果没有其他方法可以做到这一点,有没有办法在使用这种方法时清除内存?就像我们element.clear()使用.iterparse?

4

0 回答 0