2011-08-03 71 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

謝謝,這解決了我的問題 –