环境
原生python2.7
关键点
# 如下语句可以在当前输出行往前取消n个字符
sys.stdout.write('\b' * n)
设计progressbar
根据关键点
中, 往前取消输出的特性, 我们就可以有无限多追踪设计progressbar的思路了
这里给出一种
- 定义progressbar的总宽度,
- 每次输出, 总是取消前一行的所有输出
- 每次输出, 定义本次输出的长度
import time
import sys
process_bar_width = 10
def process_bar(_percent):
# 总是取消前一行的所有输出
sys.stdout.write('\b' * (100))
sys.stdout.write('{}'.format('*'*int(_percent*process_bar_width)))
for i in range(process_bar_width+1):
process_bar(i / float(process_bar_width))
time.sleep(0.5)