cElementTree clear semantics

Fredrik Lundh fredrik at pythonware.com
Sun Sep 25 16:21:26 EDT 2005


Igor V. Rafienko wrote:

> The problem is that the file looks like this:
>
> <data>
    ... lots of schnappi records ...

okay.  I think your first approach

    from cElementTree import iterparse

    for event, elem in iterparse("data.xml"):
        if elem.tag == "schnappi":
            count += 1
            elem.clear()

is the right one for this case.  with this code, the clear call will
destroy each schnappi record when you're done with it, so you
will release all memory allocated for the schnappi elements.

however, you will end up with a single toplevel element that
contains a large number of empty subelements.  this is usually
no problem (it'll use a couple of megabytes), but you can get
rid of the dead schnappis too, if you want to.  see the example
that starts with "context = iterparse" on this page

    http://effbot.org/zone/element-iterparse.htm

for more information.

</F>






More information about the Python-list mailing list