Python-time库

time库的使用

一、time库基本介绍

1.1 time库概述

time库是Python中处理时间的标准库

  • 计算机时间的表达
  • 提供获取系统时间并格式化输出功能
  • 提供系统级精确计时功能,用于程序性能分析
import time
time.<b>()
1.2 time库包括三类函数
  • 时间获取:time() ctime() gmtime()
函数描述
time()获取当前时间戳,即计算机内部时间值,返回浮点数。如:time.time() >>> 1516939876.6022282
ctime()获取当前时间并以易读方式表示,返回字符串。如:time.ctime() >>> 'Fri Jan 26 12:11:16 2018'
gmtime()获取当前时间,表示为计算机可处理的时间格式。如:time.gmtime() >>> time.struct_time(tm_year=2018, tm_mon=9, tm_mday=28, tm_hour=6, tm_min=51, tm_sec=8, tm_wday=4, tm_yday=271, tm_isdst=0)
  • 时间格式化:strftime() strptime()

strftime(tpl,ts)

tpl 是格式化模板字符串,用来定义输出效果。

ts 是计算机内部时间类型变量。

>>>t = time.gmtime()
>>>time.strftime("%Y-%m-%d %H:%M:%S",t)
'2018-01-26 12:55:20'

格式化控制符

格式化字符串日期/时间说明值范围和实例
%Y年份0000~9999,例如:1900
%m月份01~12,例如:10
%B月份名称January~December,例如:April
%b月份名称缩写Jan~Dec,例如:Apr
%d日期01~31,例如:25
%A星期Monday~Sunday,例如:Wednesday
%a星期缩写Mon~Sun,例如:Wed
%H小时(24h制)00~23,例如:12
%h小时(12h制)01~12,例如:7
%p上/下午AM, PM,例如:PM
%M分钟00~59,例如:26
%S00~59,例如:26

strptime(str, tpl)

str是字符串形式的时间值

tpl是格式化模板字符串,用来定义输入效果

>>>timeStr = '2018-01-26 12:55:20'
>>>time.strptime(timeStr, "%Y-%m-%d %H:%M:%S")
time.struct_time(tm_year=2018, tm_mon=1,
tm_mday=26, tm_hour=4, tm_min=11, tm_sec=16,
tm_wday=4, tm_yday=26, tm_isdst=0)
>>>t = time.gmtime()
>>>time.strftime("%Y-%m-%d %H:%M:%S",t)

'2018-01-26 12:55:20'

>>>timeStr = '2018-01-26 12:55:20'
>>>time.strptime(timeStr, “%Y-%m-%d %H:%M:%S”)
1.3 程序计时:sleep(), perf_counter()

程序计时应用广泛

  • 程序计时指测量起止动作所经历时间的过程
  • 测量时间: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秒后再退出

二、实例:文本进度条

单行动态刷新: 刷新的关键是 \r

  • 刷新的本质是:用后打印的字符覆盖之前的字符
  • 不能换行:print()需要被控制
  • 要能回退:打印后光标退回到之前的位置 \r
#TextProBarV3.py
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,'-'))
  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值