代码实现
l = [a, b, c, d] # 举个例子,列表l
num = len(l)
for i in range(num):
# 一些操作
print("\r[%6.2f%%][%-50s]\r" % (100 * (i+1) / num, '>' * (50 * (i+1) // num)), end='', flush=True)
print('\nFinish!')
运行效果
原理
[%6.2f%%]
表示限制长度为6,浮点数保留两位小数
[%-50s]
表示限制长度为50,字符串左对齐
(100 * (i+1) / num
计算百分比,保留两位小数
'>' * (50 * (i+1) // num)
当前进度条的长度字符串,‘>‘是填充进度条的符号,可以改为长度为一个字符长度的符号,如’#’
end='', flush=True
不换行,实时刷新缓冲区
print('\nFinish!')
最后还要打印一个换行符,否则进度条会被覆盖