用 Python3 输出文字进度条

代码(程序名为 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
image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容