我有一系列大的XML文件(每个大约3GB),我正试图处理这些文件。XML的大致格式是
<FILE>
<DOC>
<FIELD1>
Some text.
</FIELD1>
<FIELD2>
Some text. Probably some more fields nested within this one.
</FIELD2>
<FIELD3>
Some text.
</FIELD3>
<FIELD4>
Some text. Etc.
</FIELD4>
</DOC>
<DOC>
<FIELD1>
Some text.
</FIELD1>
<FIELD2>
Some text. Probably some more fields nested within this one.
</FIELD2>
<FIELD3>
Some text.
</FIELD3>
<FIELD4>
Some text. Etc.
</FIELD4>
</DOC>
</FILE>
我目前的方法是(模仿http://effbot.org/zone/element-iterparse.htm#incremental-parsing上看到的代码):
^{pr2}$不过,这会爆炸,并占用我所有的系统内存(16GB)。一开始我以为是root.clear()
的位置,所以我试着把它移到if语句之后,但似乎没有任何效果。鉴于此,我很确定除了“获得更多内存”之外,如何继续
编辑:
删除了以前的编辑,因为它是错误的。在
如果您切换到
lxml
并这样做来清除树,那么您可以使用已经编写的代码。。。在我不是说这是有效的,但它可能会完成工作。在
相关问题 更多 >
编程相关推荐