lxml pretty_print python内存重载

时间:2011-08-03 18:32:41

标签: python parsing lxml pretty-print

我的格式质量不佳的xml文件超过350 MB的数据。基本上,所有数据都合并为一行。我正在尝试将其设置为一个新文件,以使生活更轻松,但我遇到了内存问题。我在这里做错了吗?有办法解决这个问题吗?我的电脑有4GB的RAM,是四核i5-2410M(2.30Ghz)

import os
from lxml import etree

parser = etree.XMLParser(remove_blank_text=True)
tree = etree.parse('filename',parser)
f = open('filename',"w")
f.write(etree.tostring(tree,pretty_print=True))
f.close()

1 个答案:

答案 0 :(得分:4)

您可能希望尝试直接使用write方法使用文件句柄而不是调用tostring。改变这一行:

f.write(etree.tostring(tree,pretty_print=True))

到此:

tree.write(f, pretty_print=True)

这应该有望将内存使用量减少一半。