我必须处理一个大的XML文档,为此我有几个数据清理和操作任务要做。你知道吗
下面的基本代码使用xml.etree.ElementTree
。
由于文件非常大(大约2Gb),我希望能够定期打印tagCounts
累加器变量的值。你知道吗
使用ElementTree
每3分钟打印self.tagCounts
的内容来实现计时器的最干净的方法是什么?
谢谢
import xml.etree.ElementTree as ET
import pprint
class TagCounter:
def __init__(self):
self.tagCounts = {}
def start(self, tag, attrib):
if tag in self.tagCounts:
self.tagCounts[tag] += 1
else:
self.tagCounts[tag] = 1
def end(self, tag):
pass
def data(self, data):
pass
def close(self):
return self.tagCounts
def count_tags(filename):
parser = ET.XMLParser(target = TagCounter())
with open(filename, mode='r') as f:
for line in f:
parser.feed(line)
t = parser.close()
return t
if __name__ == "__main__":
tags = count_tags("file.osm")
pprint.pprint(tags)
我不明白ElementTree与实现计时器有什么关系:
其中^{} calls ^{} every ^{} seconds 。你知道吗
相关问题 更多 >
编程相关推荐