Python running out of memory parsing XML using cElementTree.iterparse

前端 未结 2 780
慢半拍i
慢半拍i 2020-12-09 16:39

A simplified version of my XML parsing function is here:

import xml.etree.cElementTree as ET

def analyze(xml):
    it = ET.iterparse(file(xml))
    count =          


        
2条回答
  •  感动是毒
    2020-12-09 17:09

    Code example:

    import xml.etree.cElementTree as etree
    
    def getelements(filename_or_file, tag):
        context = iter(etree.iterparse(filename_or_file, events=('start', 'end')))
        _, root = next(context) # get root element
        for event, elem in context:
            if event == 'end' and elem.tag == tag:
                yield elem
                root.clear() # preserve memory
    

提交回复
热议问题