python time库
time库包含三类函数: -时间获取:time() ctime() gmtime() -时间格式化:strftime() strptime() -程序计时: sleep() perf_counter()
time库的使用:
#时间获取 time() :获取当前时间戳,即计算机内部时间值,浮点数 ctime():获取当前时间并以易读的方式返回 gmtime():获取当前时间,表示为计算机可处理的时间格式 >>> import time >>> time.ctime() 'Sat Apr 14 14:53:14 2018' >>> time.gmtime() time.struct_time(tm_year=2018, tm_mon=4, tm_mday=14, tm_hour=6, tm_min=55, tm_sec=25, tm_wday=5, tm_yday=104, tm_isdst=0)
时间格式化:将时间以合理的方式展示出来 strftime(tpl,ts): tpl是格式化模版字符串,用以定义输出效果 ts是计算机内部时间类型变量 >>> t = time.gmtime() >>> time.strftime("%Y-%m-%d %H:%M:%S",t) '2018-04-14 06:58:41' %Y 年份 %m 月份 %B 月份名称 %b 月份名称缩写 %d 日期 %A 星期 %a 星期缩写 %H 小时(24制) %h 小时(12制) %p 上下午 %M分钟 %S秒 strptime(str,tpl): str是字符串形式的时间值 tpl是格式化末班字符串,用来定义输入效果 >>> timestr = '2018-04-14 15:08:20' >>> time.strptime(timestr,"%Y-%m-%d %H:%M:%S") time.struct_time(tm_year=2018, tm_mon=4, tm_mday=14, tm_hour=15, tm_min=8, tm_sec=20, tm_wday=5, tm_yday=104, tm_isdst=-1)
程序计时:指测量起止动作所经历时间的过程 测量时间:perf_counter() 产生时间:sleep() perf_couter():返回一个cpu级别的精确时间计数值,单位为秒,连续调用差值才有意义 sleep(s):s是拟休眠时间,单位为秒,可以是浮点数 import time def wait(): time.sleep(3.3) 调用wait()函数,其作用是使程序等待3.3秒
文本进度条分析:采用字符串方式打印可以动态变化的文本进度条 如何获得文本进度条的变化时间 -sleep()模拟一个持续的进度
文本进度条的简单开始 ''' 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("--------执行结束-------") ''' 文本进度条的动态刷新 刷新的本质是:用后打印的字符覆盖之前的字符 不能换行->print(,end='') 要会退:打印后光标退回到之前的位置\r ''' for i in range(101): print("\r{:3}%".format(i),end="") time.sleep(0.1) ''' 文本进度条完整效果 ''' 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}%[{}{}]{:.4f}s".format(c,a,b,dur),end="") time.sleep(0.1) print("\n"+"执行结束".center(scale//2,'-'))
文本进度条之举一反三
-在任何运行时间需要较长的程序中增加进度条 -在任何希望提高用户体验的应用中增加进度条 -进度条是人机交互的纽带之一 文本进度条的不同设计函数 Linear Constant f(x)=x Early Pause Late Pause Slow Wavy Fast Wavy Power Inverse Power Fast Power Inverse Fast Power 开始进度条展示慢一些,后续增长快时,用户体验会很棒