2011-08-03 5 views
1

350MB 이상의 데이터가있는 형식이 잘못된 XML 파일이 있습니다. 기본적으로 모든 데이터는 한 줄로 통합되었습니다. 나는이 파일을 새로운 파일로 pretty_printing하여 삶을 편하게하려고 노력하지만 메모리 문제에 직면 해있다. 내가 여기서 잘못된 일을하고 있으며 이것에 대한 방법이 있습니까? 내 컴퓨터는 4GB의 RAM을 가지고있는 쿼드 코어 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

당신은 파일 핸들과 직접 쓰기 방법을 사용하기보다는 tostring를 호출하려고 할 수 있습니다. 이것에

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

:

tree.write(f, pretty_print=True) 

이 잘하면 절반으로 메모리 사용량을 줄여야이 줄을 변경합니다.

+0

감사합니다. 그게 내 문제를 해결했습니다. –

관련 문제