在外壳中显示一个条形图,以直观地指示不断变化的计数



我想用Python编写一个简单的、基于命令行的监控工具,它可以在命令行上显示计数的视觉指示器。有问题的计数是队列中消息的计数,但这并不重要,重要的是我想显示一个可以增加或减少的计数的视觉指示器。我知道最大可能值是多少。

有人知道在Python中实现这一点的简单方法吗?

在我的脑海中,我想象着外壳中的一个水平条,它会根据计数而收缩和增长。注意,我不想要进度条(我知道我可以用tqdm来给我进度条(,因为这是一个无限的计数,没有结束的概念。

欢迎提出任何建议。

如果注意不要以n结束该行,则可以打印退格字符(b(以移动"光标";返回行首,并覆盖刚刚打印的条形图。

简单示例:

import sys
import random
import time
BAR_WIDTH = 50
curr_bar_width = 0
while True:
tally = random.randint(0, 50)
bar = '#' * tally + '.' * (BAR_WIDTH - tally)
print('b' * curr_bar_width + bar, file=sys.stderr, end='', flush=True)
curr_bar_width = len(bar)
time.sleep(0.2)

最新更新