0

サイズが 2G を超える単一のファイル。open(f, "rb").read() 私はMemoryErrorを呼び出します。open(f, "rb").read(1<<30) OKと呼ぶ

2G 制限をなくすにはどうすればよいですか? 十分なメモリがあります -- 16G

4

3 に答える 3

2

@itaypk がコメントで述べたように、32 ビットの実行可能ファイルはアクセス可能な RAM が 2GB (2^31) に制限されています。追加の RAM を利用するには、64 ビット バージョンの Python を実行する必要があります。

ファイルの処理内容によっては、ファイル全体を読み取る必要がない場合があります。あなたはそれをステップスルーすることができます:

with open('huge_file.txt') as f:
    for line in f:
       print line # print one line at a time

上記のループは、システムで利用可能なすべてのメモリを使い果たすわけではありません。

于 2013-09-04T07:00:34.543 に答える
0

ファイルが 2GB しかない場合でも、読み込みのオーバーヘッドにより、2GB をはるかに超えるメモリが使用される場合があります。

于 2013-09-04T06:56:32.193 に答える