time库的使用
time库基本介绍
time库是python中处理时间的标准库
- 计算机时间的表达
- 提供获取系统时间并格式化输出功能
- 提供系统级精确计时功能,用于程序性能分析
time库包含三类函数
- 时间获取:time()、ctime()、gmtime()
- 时间格式化:strftime()、strptime()
- 程序计时:sleep()、perf_counter()
时间获取
函数 | 描述 |
---|---|
time() | 获取当前时间戳,即计算机内部时间值,浮点数 >>>time.time() 1581250590.4828136 |
ctime() | 获取当前时间并以易读方式表示,返回字符串 >>>time.ctime() “Sun Feb 9 20:17:35 2020” |
gmtime() | 获取当前时间,表示为计算机可处理的时间格式 >>>time.gmtime() time.struct_time(tm_year=2020, tm_mon=2, tm_mday=9, tm_hour=12, tm_min=18, tm_sec=27, tm_wday=6, tm_yday=40, tm_isdst=0) |
时间格式化
将时间以合理的方式展示出来
- 格式化:类似字符串格式化,需要有展示模板
- 展示模板由特定的格式化控制符组成
- strftime()方法
函数 | 描述 |
---|---|
strftime(tpl,ts) | tpl是格式化模板字符串,用来定义输出效果 ts是计算机内部时间类型变量 >>>t = time.gmtime() >>>time.strftime(“%Y-%m-%d %H:%M:%S”,t) “2020-02-09 12:22:49” |
strptime(str,tpl) | str是字符串形式的时间值 tpl是格式化模板字符串,用来定义输入效果 >>>timestr = “2020-02-09 12:22:49” >>>time.strptime(timestr,”%Y-%m-%d %H:%M:%S”) time.struct_time(tm_year=2020, tm_mon=2, tm_mday=9, tm_hour=12, tm_min=22, tm_sec=49, tm_wday=6, tm_yday=40, tm_isdst=-1) |
格式化字符串 | 日期/时间说明 | 值范围 |
---|---|---|
%Y | 年份 | 0000~9999 |
%m | 月份 | 01~12 |
%B | 月份名称 | January~December |
%b | 月份名称缩写 | Jan~Dec |
%d | 日期 | 01~31 |
%A | 星期 | Monday~Sunday |
%a | 星期缩写 | Mon~Sun |
%H | 小时(24h制) | 00~23 |
%I | 小时(12h制) | 01~12 |
%p | 上/下午 | AM、PM |
%M | 分钟 | 00~59 |
%S | 秒 | 00~59 |
程序计时应用
- 程序计时指测量起止动作所经历时间的过程
- 测量时间:perf_counter()
- 产生时间:sleep()
函数 | 描述 |
---|---|
per_counter() | 返回一个CPU级别的精准时间计数值,单位为秒 由于这个计数值七点不确定,连续调用差值才有意义 >>>start = time.perf_counter() 42.6483905 >>>end = time.perf_counter() 62.1302614 >>>end - start 19.481870900000004 |
sleep(s) | s拟休眠的时间,单位是秒,可以是浮点数 >>>def wait(): time.sleep(5) >>>wait() #程序将等待5秒后再退出 |
实例:文本进度条设计
import time
scale = int(input())
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}".format(c,a,b,dur),end="")
time.sleep(0.1)
print("\n"+"执行结束".center(scale//2,"-"))