明太子ソースに鮭フレークを添えて

雑多な備忘録とか戯言とか。

pythonでのファイルオープン数の上限エラー回避

普段使っているスクリプトで以下のようなエラーが出た。

IOError: [Errno 24] Too many open files: 'input.txt'

このスクリプトにはforで複数回openするコードが入っており、今回は特に幾千万レベルを回す処理だったため、上限に引っかかったようだ。

for n in N:
    for line in open('input.txt', 'r'):
    print line

上限を外すことで解決する方法もあるようなのだけど、よく分かってない初心者が根の方を弄るのはやばいと思い、スクリプト側で何とかする事にした。

そういえば最初に読んだpython教本に、開いたら閉じなさいって書いてあったなあ……と思い出し、毎回閉じるようにしたら通った。

for n in N:
    f = open('input.txt', 'r')
    for line in f:
        print line
    f.close()