2011-08-03 29 views
1

我有超过350 MB的数据的格式不正确的XML文件。基本上,所有数据都合并为一行。我正努力将这个文件打印到一个新的文件中,以使生活更轻松,但却遇到了内存问题。我在这里做错了什么,有没有办法解决这个问题?我的电脑有4GB内存,是一个四酷睿i5-2410M(2.30Ghz)LXML pretty_print蟒蛇内存过载

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() 
+0

如果你只想文件,'xmlformat'是一个伟大的程序进行格式化:http://www.kitebird.com/software/xmlformat/ – GaretJax

回答

4

您可能需要直接使用write方法与文件句柄,而不是调用toString尝试。改变这一行:

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

这样:

tree.write(f, pretty_print=True) 

这应该一半有望减少内存使用情况。

+0

谢谢,这解决了我的问题 –