Python的文本进度条

-采用字符串方式打印可以动态变化的文本进度条。

-进度条需要能在一行中逐渐变化。


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, "-"))



猜你喜欢

转载自blog.csdn.net/galaxy__42/article/details/80716978