2017-04-17 15 views
0

ファイルを読み込んでその内容を配列に追加するスクリプトがあります。各ファイルのサイズは7M〜15Mです。ファイル数は100です。ファイルの合計サイズは800Mです。私は、コードを実行するとPython:配列の最大サイズ?

full_str = [] 
for indexfile in files: 
    with open(indexfile) as f: 
     iindex = f.read() 
    full_str += [str(iindex)] 

私はそれがここに制限はないので、要素の最大数は、500M未満でなければならないということhereから知っているが、しかし、私は私の問題から抜け出します。プロセスを殺す別の制限があるかどうか教えてください。私は何をすべきか?

+0

あなたは 'MemoryError'のようなエラー/例外を受け取りますか?あなたが得ているエラーを共有してください? –

+0

私は100%確信していませんが、あなたのコードに 'Memory'の問題ではないその他の問題があるようです。これは、Pythonのメモリ制限は、コンピュータとオペレーティングシステムが利用できる物理RAMと仮想メモリのディスク容量の大きさによって決まるからです。あなたがすべてそれを使うならば、あなたは 'MemoryError'を得るでしょう。さもなければあなたのプログラムはうまく "うまくいく"べきです。 –

+0

プロセスはOSによって殺されるだけで、例外はありません。私はそれを実行するとまだ空きRAMがあり、CPUは90%に近いですが、システムの負荷が非常に高く(約60〜80)、突然それが殺されます。コードは上記のように簡単です。ファイルにはすでにファイルに書き込んだjsonオブジェクトだけが含まれています。私はこのコードで何が間違っているのか分かりません。それはとても簡単です。 – Alex

答えて

0

これは驚くべきことですが、ファイルの内容に非ASKI文字が含まれているため、プロセスが強制終了され、このエラーが発生することがわかりました。だから、私は単にすべてのものを 'UTF-8'でエンコードし、今は動作します。

関連する問題