私は約28Gbの3列ファイルを持っています。私はPythonでそれを読んでその内容を3Dタプルのリストに入れたいと思います。pythonはファイルの実際のサイズよりも多くのメモリをロードします
f = open(filename)
col1 = [float(l.split()[0]) for l in f]
f.seek(0)
col2 = [float(l.split()[1]) for l in f]
f.seek(0)
col3 = [float(l.split()[2]) for l in f]
f.close()
rowFormat = [col1,col2,col3]
tupleFormat = zip(*rowFormat)
for ele in tupleFormat:
### do something with ele
は私が実際にファイルの全体の内容を読むことを意味し、ループのためには「ブレーク」コマンドはありません。ここで私が使用しているコードです。スクリプトが実行されているとき、私は仮想メモリ(VIRT列)の156Gと常駐メモリ(RES列)のほぼ同じ量を取ることを 'htop'コマンドから通知します。ファイルサイズがわずか28Gであるのに対し、私のスクリプトは156Gを使用するのはなぜですか?
でも 'int'はヘッダを持つオブジェクトで、予想以上のスペースを占めます。おそらく['numpy.loadtxt()'](http://docs.scipy.org/doc/numpy-1.10.0/reference/generated/numpy.loadtxt.html)を使うことができますか? – Reti43
なぜファイルを3回読むのですか? –
なぜあなたは同時にそれをすべてメモリに必要としていますか? –