バッファフラッシュ

あるファイルの更新状況を一時的に監視したかったので、以下のプログラムを書いてみた。

import time

while 1:
    # ここでファイルの監視
    print '結果の表示'
    time.sleep(60)

シェルから

% ./check.py

と実行したら問題はないものの、

% ./check.py > log.txt &

とバックグランドでログに出力しようとしたら、時々まとめて書き出されるので tail -f とかで見ても見づらい。

import time, sys

while 1:
    # ここでファイルの監視
    print '結果の表示'
    sys.stdout.flush()    
    time.sleep(60)

と毎回バッファフラッシュしてやればいいようだ。