time库包含三类函数:
时间获取:time() ctime() gmtime()
时间格式化:strtime() strptime()
程序计时:sleep() perf_counter()
下面逐一介绍:
时间获取
其中struct_time元组中元素的含义分别为
时间格式化
strftime(tpl,ts)
tpl是格式化模板字符串,用来定义输出效果
ts是计算机内部时间类型变量
>>>t = time.gmtime() >>>time.strftime("%Y-%m-%d %H:%M:%S",t) '2023-01-26 12:55:20'
strptime(str,tpl)
str是字符串形式的时间值
tpl是格式化模板字符串,用来定义输入效果
>>>timeStr = ‘2023-01-26 12:55:20' >>>time.strptime(timeStr, "%Y-%m-%d %H:%M:%S") #输出结果 time.struct_time(tm_year=2023, tm_mon=1, tm_mday=26, tm_hour=12, tm_min=55, tm_sec=20, tm_wday=3, tm_yday=26, tm_isdst=-1)
现在总结一下格式化控制符
程序计时
程序计时指的是测量起止动作所经历时间的过程
测量时间:perf_counter()
产生时间:sleep()
perf_counter()
#返回一个CPU级别的精确时间计数值,单位为秒由于这个计数值起点不确定,连续调用差值才有意义
>>>start = time.perf_counter() 318.66599499718114 >>>end = time.perf_counter() 341.3905185375658 >>>end - start 22.724523540384666
sleep(s)
s是休眠时间,单位为秒,可以是浮点数
>>>def wait(): time.sleep(3.3) >>>wait() #程序将等待3.3秒后再退出
举例:文本进度条
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("------执行结束------")
结果:
如果想实现单行刷新,只需要加入"\r",即打印后光标退回到之前的位置\r
print("\r{:^3.0f}%[{}->{}]{:.2f}s".format(c,a,b,dur),end='')
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,'-'))
结果: