27 lines
832 B
Python
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()
|