我正在解析一个700MB的文件,我有以下代码,对于我的测试文件来说,在没有加入context.iter(context)和event, elem = context.next()这行代码的情况下也可以正常工作。
form xml.etree import cElementTree as ET
source = ("AAT.xml")
context = iter(context)
event, root = context.next()
for event, elem in context:
if event == event("end"):
some processing...
elem.clear()
root.clear()
然而,当我使用iterparse处理700mb的文件时,它仍然会崩溃。在阅读以下信息后:
使用ElementTree.iterparse()清除树形结构时,内存使用量是否应该增加?
我认为这是因为我需要清除根元素。但是,尽管我已经参考了一些教程,并将其纳入了上述内容,但我仍然不断收到错误信息:
line 9, in <module>
event, root = context.next()
AttributeError: 'iterparse' object has no attribute 'next'
我还不太熟悉Python,无法理解为什么会发生这种情况,就我所知道的,我和示例代码是一致的。