一行代码
print("\r" + symbol*round(index/loop_len*bar_len) + " "*(bar_len-round(index/loop_len*bar_len)-1) + '|' + str(index+1) + '/' + str(loop_len), sep="", end="")
技巧解析
- 使用
\r
来将光标的位置回退到本行的开头位置 - 使用
print
函数中的end
参数使得打印本行结尾是空字符串(默认\n
)
完整代码调用
import time
def progress_bar(index, bar_len, loop_len, symbol='#'):
'''进度条,输入为实际索引、进度条长度和循环总次数'''
print("\r" + symbol*round(index/loop_len*bar_len) + " "*(bar_len-round(index/loop_len*bar_len)-1) + '|' + str(index+1) + '/' + str(loop_len), sep="", end="")
size = 110
for i in range(size):
# ...
progress_bar(i, 80, size)
# ...
time.sleep(0.1)
执行结果如下: