在python

时间:2017-06-20 21:53:06

标签: python

我想知道使用python 3.6通过以下方法获取根句柄是否有效。 (它似乎适用于带有xml.etree.cElementTree的2.7)。使用的数据文件位于https://docs.python.org/3.4/library/xml.etree.elementtree.html#parsing-xml

# python 3.6
import xml.etree.ElementTree as ET
iterator = ET.iterparse(filename) # see my own response !
_, root = next(iterator)  
print('ROOT:', root.tag)  # prints 'rank', 1st tag, not 'data', root !!
for event, elem in iterator:  
    print(elem.tag, elem.attrib, elem.text) # prints 'year', 2nd element
    # process..
    elem.clear() # works, but empty tags accumulate ?
    root.clear() # doesn't clear

没有root.clear()的代码可以工作,但是内存不断上升(尽管不是很快)。我问这个问题是因为我看到使用它的旧代码,看到最新python的更新会很高兴,以免出错。

由于

1 个答案:

答案 0 :(得分:0)

这是我的错。它适用于,

iterator = ET.iterparse(filename, events=("start", "end"))

然后处理“end”。