time 库的三类函数 时间获取: >>> import time >>> time.time() 1570150181.4052463#单位为秒 >>> time.ctime() 'Fri Oct 4 08:49:48 2019'#当前日期 >>> time.gmtime() time.struct_time(tm_year=2019, tm_mon=10, tm_mday=4, tm_hour=0, tm_min=51, tm_sec=25, tm_wday=4, tm_yday=277, tm_isdst=0)
时间格式化: strftime(tpl,ts)#tpl 格式化模板字符串,用来定义输出效果 ts是计算机内部时间类型变量 >>> t = time.gmtime() >>> time.strftime("%Y-%m-%d %H:%M:%S",t) '2019-10-04 00:55:38'
>>> timestr = "2018-02-23 14:25:03" >>> time.strptime(timestr,"%Y-%m-%d %H:%M:%S") time.struct_time(tm_year=2018, tm_mon=2, tm_mday=23, tm_hour=14, tm_min=25, tm_sec=3, tm_wday=4, tm_yday=54, tm_isdst=-1)
程序计时 >>> start = time.perf_counter() >>> end1 = time.perf_counter() >>> end1-start 39.24317029999975 >>> end2 = time.perf_counter()#都是基于最开始的调用 >>> end2-start 56.55061230000001 >>> end2-end1 17.307442000000265 sleep函数 >>> def wait(): time.sleep(1.2) >>> wait()#程序停滞了1.2s #打印进度条 import time scale = 10 for i in range(scale+1): a= '*'*i b = '.'*(scale-i) c = i*10 print("{:^3}%[{}->{}]".format(c,a,b)) time.sleep(0.1)
文本进度条的单行刷新 刷新的本质:用后打印的字符覆盖之前的字符 不能换行,要能回退(打印后光标退回到之前的位置 ) 光标回到行首 #打印进度条 import time for i in range(101): print(" {:3}%".format(i),end='') time.sleep(0.1) 在IDLE里面屏蔽了 ,但是可以在cmd运行
#较为完善的单行刷新 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*2 d= time.perf_counter()-start print(" {:^3}%[{}->{}] {:.2f}s".format(c,a,b,d),end='') time.sleep(0.1) print(" "+"执行结束".center(scale//2,'-'))