代码(程序名为 run.py
)
#!/usr/local/bin/python3
import time
for i in range(100 + 1):
print('\r', end='')
print('progress bar: %s/100' % i, end='')
time.sleep(0.05)
作用
每隔 0.05s 将文字格式的进度条刷新
效果展示
原理
\r
字符的作用是回到行首。这样在输出 \r
后就可以覆盖之前的内容。
活学活用
例一
假设我们刚刚在终端输出了
Hello world
那么此时终端展示的就是
Hello world
然后向终端输出 \r
,那么此时终端内容不变,但是光标会回到行首的位置。
此时输出 =^=
,就会看到终端显示
=^=lo world
用到的程序 (名为 a.py
)
#!/usr/local/bin/python3
import time
print('Hello world', end='')
print('\r', end='')
print('=^=')
例二
与此类似,也可写一个程序,它最终输出一个字符,但是通过 wc
命令可以看到其实不止一个字符
用到的程序(名为 b.py
)
#!/usr/local/bin/python3
import time
for i in range(10):
print('\r', end='')
print('a', end='')
./b.py | wc