Files
courses/py3interm/EXAMPLES/xml_iterparse_check_mem.py
2025-05-20 11:57:43 -04:00

27 lines
832 B
Python

#!/usr/bin/env python
from lxml.etree import iterparse
from memorychecker import MemoryChecker
def main():
doc = iterparse("../BIG_DATA/pubmed19n0001.xml", tag='PubmedArticle') # <1>
mem_checker = MemoryChecker() # <2>
for i, (event, element) in enumerate(doc, 1): # <3>
year_completed = element.findtext('.//DateCompleted/Year') # <4>
month_completed = element.findtext('.//DateCompleted/Month')
clear_element(element)
current_mem_use = mem_checker() # <5>
print("{:5d}. {}/{} {}".format(i, month_completed, year_completed, current_mem_use))
print("Total count: {}".format(i))
def clear_element(element):
element.clear() # <6>
while element.getprevious() is not None: # <7>
del element.getparent()[0] # <8>
if __name__ == '__main__':
main()