文本进度条

time库的基本情况

time库是Python中处理时间的标准库

  • 计算机时间的表达
  • 提取获取系统时间并格式化输出功能
  • 提供系统级精确计时功能,用于程序性能分析

import time

time.<b>()

time库包括三类函数

  • 时间获取:time()ctime()gmtime()
  • 时间格式化:strftime()strtime()
  • 程序计时:sleep(),perf_counter()



时间格式化:将时间以合理的方式表现出来。





例 程序计时应用

程序计时指测量起止动作所经历时间的过程


例 文本进度条

采用字符串方式打印可以动态变化的文本进度条。需要在一行中能够变化。

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个槽
    time.sleep(0.1)
print("-----执行结束-----")

运行结果

------执行开始-----
 0 %[->..........]
10 %[*->.........]
20 %[**->........]
30 %[***->.......]
40 %[****->......]
50 %[*****->.....]
60 %[******->....]
70 %[*******->...]
80 %[********->..]
90 %[*********->.]
100%[**********->]
-----执行结束-----

单行动态刷新

  • 刷新的本质是:用后打印的字符覆盖之前的字符。
  • 不能换行:print()被控制(默认换行)
  • 要能回退:打印后光标退回到之前的位置\r
import time
scale = 10
print("------执行开始-----")
for i in range(scale++1):
    a='*'*i
    b='.'*(scale-i)
    c=(i/scale)*100
    print("\r{:^3.0f}%[{}->{}]".format(c,a,b),end="")
    time.sleep(0.1)
print("-----执行结束-----")

完整实现

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

需要在命令提示符下进行执行操作,在IDLE下\r的功能被屏蔽



猜你喜欢

转载自blog.csdn.net/qq_42020563/article/details/80652373
今日推荐