1: 2017-05-29 (月) 09:27:11 njf | |||
---|---|---|---|
Line 1: | Line 1: | ||
+ | 実行時間の長いプログラムの状況を表示させるため、printで出力させようとすると、しばらく何も出力されず、ある程度時間が経ってからまとめて表示されることがあります。 | ||
+ | これは出力処理には時間がかかるので、ある程度まとめて一気に表示することで、処理速度を速くしているためです。 | ||
+ | しかし、プログラムの実行状況を見るにはちょっと不便です。多くのプログラム言語にはそんなときに強制的に出力させる機能が用意されています。一般にそのような機能は「flush」と呼ばれていて、pythonでは以下の方法で利用できます。 | ||
+ | |||
+ | python2系なら | ||
+ | import sys | ||
+ | |||
+ | print "test" | ||
+ | sys.stdout.flush() | ||
+ | |||
+ | とすればすぐに表示が更新されます。 | ||
+ | |||
+ | python3系ならprintに引数を追加することで、同じ事が実現できます。 | ||
+ | |||
+ | print("test", flush=True) | ||
+ | |||
+ | ただし、flushを使うとその出力の分だけ処理は重くなるので、あまり頻繁に使いすぎないようにしましょう。 |