初心者のメモ

Python enthusiast

Python コンソールへの出力を改行せずに上書きする方法

普通に出力すると

for i in range(0, 100):
    print(i)
> 0
> 1
> 2
...
> 99
> 100

と改行されて表示される。

改行せずに表示するにはsys.stdoutを使うといい。

import sys, times

def print_progress(text):
    sys.stdout.write("\r%s" % text)
    sys.stdout.flush()
    time.sleep(0.01)

for i in range(0, 100):
    print_progress('progress: %d' % i)

とすると、

> progress: 100

のように改行なしで数字が0~100まで表示される