Warum frisst lxml.etree.iterparse () meinen gesamten Speicher auf?

Das verbraucht schließlich meinen gesamten verfügbaren Speicher und dann wird der Prozess abgebrochen. Ich habe versucht, das Tag von zu ändernschedule zu "kleineren" Tags, aber das machte keinen Unterschied.

Was mache ich falsch / wie kann ich diese große Datei mit verarbeiteniterparse()?

import lxml.etree

for schedule in lxml.etree.iterparse('really-big-file.xml', tag='schedule'):
    print "why does this consume all my memory?"

Ich kann es leicht zerschneiden und in kleineren Stücken verarbeiten, aber das ist hässlicher, als ich es gerne hätte.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage