-采用字符串方式打印可以动态变化的文本进度条。
-进度条需要能在一行中逐渐变化。
1、简单的开始
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)) # ^3.0f指输出前三位的整数,“.”后面是指你要保留多少位的小数点。 time.sleep(0.1) print("------执行结束------")
运行结果:
------执行开始------
0 %[->..........]
10 %[*->.........]
20 %[**->........]
30 %[***->.......]
40 %[****->......]
50 %[*****->.....]
60 %[******->....]
70 %[*******->...]
80 %[********->..]
90 %[*********->.]
100%[**********->]
------执行结束------
2、单行动态刷新
扫描二维码关注公众号,回复:
1625268 查看本文章
for i in range(101): print("\r{:3}%".format(i), end="") # \r是指在打印输出字符串之前,它能使光标退回到当前行的行首。 # 意思就是把原来打印出来的字符串替换成之后打印出来的字符串,从而实现动态的效果(只在一行中打印)。 # 如果我们希望在输出字符串中增加什么信息,我们就在end中增加。 time.sleep(0.1)
3、完整效果文本记录条
import time scale = 50 # 我们文本进度条大概的宽度 print("执行开始".center(scale//2, "-")) # center()方法,将减号字符填充在执行开始或执行结束的两侧 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="") # ^3.0f指输出前三位的整数,“.”后面是指你要保留多少位的小数点。 time.sleep(0.1) print("\n"+"执行结束".center(scale//2, "-"))