ページへ戻る

 印刷 

Python​/即時画面出力させる :: NJF Wiki

xpwiki:Python/即時画面出力させる

実行時間の長いプログラムの状況を表示させるため、printで出力させようとすると、しばらく何も出力されず、ある程度時間が経ってからまとめて表示されることがあります。 これは出力処理には時間がかかるので、ある程度の量の内容をまとめて他の処理が一段落したときに一気に表示して、全体の処理速度を速くしているためです。

しかし、プログラムの実行状況を見るにはちょっと不便です。多くのプログラム言語にはそんなときに強制的に出力させる機能が用意されています。一般にそのような機能は「flush」と呼ばれ、pythonでは以下の方法で利用できます。

python2系なら

import sys

print "test"
sys.stdout.flush()

とすればすぐに表示が更新されます。

python3系ならprintに引数を追加することで、同じ事が実現できます。

print("test", flush=True)

ただし、flushを使うとその出力の分だけ処理は重くなるので、あまり頻繁に使いすぎないようにしましょう。


Last-modified: 2017-05-29 (月) 09:52:32 (JST) (2516d) by njf