lxml etree.parse を使用して、どういうわけか巨大な XML ファイル (約 65MB ~ 300MB) を解析しています。以下の関数を含むスタンドアロンの Python スクリプトを実行すると、メモリ割り当てエラーが発生します。
Error:
Memory allocation failed : xmlSAX2Characters, line 5350155, column 16
機能コードの一部:
def getID():
try:
from lxml import etree
xml = etree.parse(<xml_file>) # here is where the failure occurs
for element in xml.iter():
...
result = <formed by concatenating element texts>
return result
except Exception, ex:
<handle exception>
奇妙なことに、IDLE で同じ関数を入力し、同じ XML ファイルをテストすると、MemoryAllocation エラーは発生しません。
この問題に関するアイデアはありますか?前もって感謝します。