カウントダウンをしたいときとか、普通にprintを使って
for i in range(100):
print i
とするとコンソール上に
1
2
3
4
5
…
と、縦長に出力されてしまう。
これだと見づらいので、インストールの時に表示される進度メーターのように、次の数字を出力する際に前の出力が消えて そこに次の数字が現れてほしい。
上書きする場合
import sys, time
for num, i in enumerate(range(100)):
sys.stdout.write("\r%d" % num)
sys.stdout.flush()
time.sleep(0.01)
sys.stdout.writeの\rがキモっぽい。これがないと上書きされない。
追記してゆく場合
import sys, time
for i in range(100):
sys.stdout.write("=")
sys.stdout.flush()
time.sleep(0.01)
これで無駄な出力で画面がうめつくされるのを防げるわけです。