以下のような配列が記述されているファイルをpythonのeval関数を用いて読み込み、計算などの処理を行っているのですが、読み込むファイルの容量が100~200MBとかなり大きく、eval関数による処理の際メモリの使用率が100パーセント近くまで増加し、処理が遅くなってしまい困っています。
何か代替策は無いでしょうか?よろしくお願いします。
#プログラム例
f=open(data.txt)
data = f.read()
data2 = eval(data2)
print data2
#ファイル例(data.txt)
numpy.array[1,2,3,4,...]
numpy.array[5,6,7,8,...]
.
.
.
numpy.array[9,10,11,12,...]
膨大なファイルをeval関数に入れることによりメモリを消費してしまっているようなのですが、readline関数等を使えば1行ずつにdata2に追加していくように書き換えることは可能でしょうか?
data.txtは以下のような形式です。
"""
[
[numpy.array[0,0,0,0,0.421,0,0…,0,0],numpy.array[1]],
[numpy.array[0,0,0…,0,0,0.928…,0,0],numpy.array[0]],
・
・
・
[numpy.array[0,0.428,0…,0,0,0,…,0,0.007],numpy.array[1]]
[numpy.array[0,0.428,0…,0.311,0,0,…,0,0],numpy.array[0]]
]
"""