需求分析:
1)采用字符串方式打印可以动态变化的文本进度条
2)进度条需要能在一行中逐渐变化
问题分析:
如何获得文本进度条的变化时间? 采用sleep()模拟一个持续的进度!
简单的开始
import time
scale=10
print("------执行开始------")
for i in range(scale+1):
a='*'*i
b='.'*(scale-i)
c=(i/scale)*100
print("{:^3.0f}%[{}->{}]".format(c,a,b))
time.sleep(0.1)
print("------执行结束------")
输出结果:
文本进度条的单行动态刷新
刷新的关键是‘\r’ ,表示光标回到行首
完整效果:
import time
scale=50
print("执行开始".center(scale//2),"-")
start=time.perf_counter()
for i in range(scale+1):
a='*'*i
b='.'*(scale-i)
c=(i/scale)*100
dur=time.perf_counter()-start
print("\r{:3.0f}%[{}->{}]{:.2f}s".format(c,a,b,dur),end="")
time.sleep(0.1)
print("\n"+"执行结束".center(scale//2,'-'))