知り合いの blog で書かれていたタイトルを見てふと思い出した Python でのお話。
Python のファイルオブジェクトには readlines() という便利な命令があります。普段簡単なスクリプトを組むときは使うのですが、readlines() はいったんメモリに読み込むため、大きな行数があるファイルを読むときに使うと使用メモリが一気に増大して悲惨なことになります。
というか、サーバのログファイルを整理するスクリプトを組んでいて気づいたのですね。
で、まぁ、readline() を使えばいいのですが…そのとき組んだのが以下のような感じ。
fp = open(filename, 'rb') while True: l = fp.readline() if len(l) < 1: break l = l.rstrip() # 以下なんかの処理
な~んか美しくないんだよなぁ…この書き方(^^ゞ
ふと思ったけど Python 2.5 以降なら with ステートメントを使うのがよかったのかな?