Linux | 如何在终端使用Progress bar
原理:使用 ANSI 转义序列来控制光标位置
import time
import sys
def progress_bar(total):
for i in range(total + 1):
percent = (i / total) * 100
# bar = '█' * (i // 2) + '-' * (total // 2 - i // 2)
bar = '\u2588' * (i // 2) + '-' * (total // 2 - i // 2)
sys.stdout.write(f'\rProgress: |{bar}| {percent:.2f}%')
sys.stdout.flush()
time.sleep(0.1) # 模拟工作
print()
progress_bar(100)
\r:这个字符的作用是将光标移动到当前行的开头,而不是换到下一行。这样可以覆盖当前行的内容,实现动态更新。必须写在字符串的最前面,以确保光标移动到当前行的开头。- 使用
i // 2的原因是为了将进度条的长度控制在一个合适的范围内,减少进度条的字符数量,易于阅读