2016-11-01 6 views
3

私はそれほど大きなテキストファイル(〜220Mb)を持っていないので、私のRAM(12Gb)の合計量、 64ビットWindows7。Readlines()が動作している間にPython read()がMemoryErrorを発生させる

この単純なコードでは、MemoryErrorを上げ、なぜ私は理解していない:

f_in = open (r"my_txt_file_220Mb.txt", 'r', encoding = 'utf8') 
txt = f_in.read() 

奇妙な、しかしちょうどこのコードは動作します:

txt = ''.join (f_in.readlines()) 

が、私はそれが同等であることを考えました。 MemoryErrorの理由は何ですか?

私は32ビットPython 3.4.2を使用しています。

+1

トレースバックを投稿できますか?確かに奇妙に聞こえる。 –

+0

'トレースバック(最新の呼び出しの最後):' すべての 'TXT = f_in.read()' ' MemoryError' で' ' ファイル "1.10 read.py"、2行目、。 –

+0

2番目の例では、 'txt'変数を使って何かをしようとしています - 少なくとも長さを表示してください。 OOMで失敗したかどうかを教えてください。 – baldr

答えて

-2

Readlineはファイルを1行ずつ読み込み、Readはファイル全体を読み込みます。

私はちょうどfor line in fileループを使用することをお勧めします。

+0

これは、彼が実際に 'readline'を呼んでいると仮定します。 – chepner

+0

ありがとう、私は解決策や回避策を求めていない、私はread()の問題を理解しようとしています。 –

関連する問題