需求分析:

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("------执行结束------")

输出结果:python:文本进度条_问题分析

文本进度条的单行动态刷新

刷新的关键是‘\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,'-'))

python:文本进度条_动态刷新_02

python:文本进度条_问题分析_03