1.time库的使用
可以获取系统时间并格式化输出。
包括三类函数:
时间获取:time()、ctime()、gmtime()
时间格式化:strftime()、strptime()
程序计时:sleep()、perf_counter()
时间获取:
1.time(),获取当前时间的时间戳,即计算机内部时间值,是个浮点数
>>>time.time()
>>>1516939876.6022282
time.time()
1516939876.6022282
2.ctime(),获取当前时间并以易读的方式表示,返回字符串。
>>>time.ctime()
>>>'Fri Jan 26 12:11:16 2018'
3.gmtime(),获取当前时间,表示为计算机可以处理的时间格式
>>>time.gmtime()
>>>time.struct_time(tm_year=2021, tm_mon=8, tm_mday=17, tm_hour=1, tm_min=55, tm_sec=29, tm_wday=1, tm_yday=229, tm_isdst=0)
时间格式化:
1.strftime(tpll, ts),tpl是格式化模板字符串,用来定义输出效果,ts是计算机内部时间类型变量
>>>t = time.gmtime()
>>>time.strftime("%Y-%m-%d %H:%M:%S",t)
>>>'2021-08-17 02:17:25'
2.strptime(str,tpl),str是字符串形式的时间值,tpl是格式化模板字符串,用来定义输入效果
>>>timeStr = '2021-08-17 02:17:25'
>>>time.strptime(timeStr,"%Y-%m-%d %H:%M:%S")
>>>time.struct_time(tm_year=2021, tm_mon=8, tm_mday=17, tm_hour=2, tm_min=17, tm_sec=25, tm_wday=1, tm_yday=229, tm_isdst=-1)
程序计时:
1.perf_counter(),返回一个CPU级别的精准时间计数值,单位为秒,由于这个计数值起点不确定,连续调用差值才有意义
>>>start = time.perf_counter()
>>>print(start)
>>>2485.3823075
>>>end = time.perf_counter()
>>>print(end)
>>>2527.8451722
>>>print(end - start)
>>>42.462864699999955
2.sleep(s),s拟修眠的时间,单位是秒,可以是浮点数
>>> def wait():
time.sleep(3.3)
>>> wait() #程序将等待3.3秒后再退出
2.文本进度条
采用字符串方式打印可以动态变化的文本进度条
进度条需要能在一行中逐渐变化
1.单行动态刷新
刷新的关键是\r
刷新的本质是:用后打印的字符覆盖之前打印的字符
不能换行:print需要被控制,end = “”
要能回退:打印后光标要退回到之前的位置\r
import time
start = time.perf_counter()
for i in range(102):
p = int((i/101)*100)
j = 100 - p
end = time.perf_counter()
time.sleep(0.05)
print("\r{:3d}".format(p)+"%"+"["+'*'*p+"->"+'.'*j+"]{:.2f}s".format(end - start),end = '')