文本进度条———>采用字符串方式打印可以动态变化的文本进度条
进度条需要能在一行中逐渐变化
用sleep()模拟一个持续的进度
①
#txt progress bar
import time
s=10
print("-----执行开始-----")
for i in range(s+1):
a='*'*i
b='.'*(s-1)
c=(i/s)*100
print("{:3.0f}%[{}->{}]".format(c,a,b))
time.sleep(0.1)
print("-----执行结束-----")
-----执行开始-----
0%[->.........]
10%[*->.........]
20%[**->.........]
30%[***->.........]
40%[****->.........]
50%[*****->.........]
60%[******->.........]
70%[*******->.........]
80%[********->.........]
90%[*********->.........]
100%[**********->.........]
-----执行结束-----
② 单行动态刷新
刷新的本质:用后打印的字符覆盖之前的字符
不能换行: print()需要被控制
要能退回:打印后光标退回到之前的位置 \r
完整效果:
#txt progress barimport time
scale=50 //定义为50就是进度条以2%跳动 若定义10 进度条则为以1%跳动
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="\n")
time.sleep(0.1)
print("\n"+"执行结束".center(scale//2,'-'))