私は非常に大きなファイル(〜300GB)から偶数行を取得しようとしていますが、エラーを受け取っているのとほぼ同じサイズのファイルに対して実行できます。大きなファイルのitertoolsシステムエラー
import itertools
import sys, os
with open('FILE.fasta') as f:
fd = open("FILE.txt","w")
fd.writelines(set(itertools.islice(f, 0, None, 2)))
fd.close()
とエラーは、次のとおりです:コードがある
Traceback (most recent call last):
File "new3.py", line 7, in <module>
fd.writelines(set(itertools.islice(f, 0, None, 2)))
SystemError: Negative size passed to PyString_FromStringAndSize
あなたは確かにファイルがあまりにも大きいので、それはあると思いますか?コードが動作している間、私はメモリ使用量をチェックしました。それは決して50%以上でした。
私は助けていただきありがとうございます!
PyString_FromStringAndSizeのオーバーフローとよく似ています。 itertools呼び出しを一時変数に移動できますか?次に、私たちはもっと便利なスタックトレースを持っています –
質問があれば、行番号を取得して偶数行を書くために 'enumerate()'を使って入力ファイルハンドルを繰り返します –
また、必要? – GolfWolf