分享

time库的使用

 流形sbz 2024-01-20 发布于甘肃

概述

time库是Python中处理时间的标准库,提供获取系统时间并格式化输出的功能,提供系统级精确计时功能,用于程序性能分析。

time库包括三类函数:

  1. 时间获取:time() / ctime() / gmtime()
  2. 时间格式化:strftime() / strptime()
  3. 程序计时:sleep() / perf_counter()

时间获取

time() : 获取当前时间戳,即计算机内部时间值(浮点数)

import time
print(time.time())

ctime() : 获取当前本地时间并以易读方式显示(字符串)

import time
print(time.ctime()) # Fri Oct  9 11:38:45 2020

gmtime() : 获取当前标准时间,返回值为计算机可处理的时间格式

import time
print(time.gmtime())

时间格式化

将时间以合理的方式展示出来

在这里插入图片描述
在这里插入图片描述

strftime(tpl,ts)

  • tpl 是格式化模板字符串,用来定义输出效果。
  • ts 是计算机内部时间类型变量。
import time 
t = time.gmtime()
print(time.strftime('%Y-%m-%d %H:%M:%S',t))

strptime(str,tpl)

  • str 是字符串形式的时间值
  • tpl 是格式化模板字符串,用来定义输入效果:函数返回值是时间结构体
import time 
timeStr = '2020-10-09 16:55:55'
print(time.strptime(timeStr,'%Y-%m-%d %H:%M:%S'))

strftime() 与 strptime() 的区别

  • strftime() :f 是 format 的意思,把时间处理为我们能看懂的格式,返回值是字符串。
  • strptime() :p 是 parse 的意思,对字符串进行解析,返回值是时间结构体。

程序计时

程序计时指测量起止动作所经历时间的过程

perf_counter()

返回一个CPU级别的精确时间计数值,单位为秒。由于这个计数值起点不确定,联系调用差值才有意义。

import time
startTime = time.perf_counter()
endTime = time.perf_counter()
print(endTime - startTime)

sleep(s)

sleep(s) : s指休眠的时间,单位是秒,可以是浮点数。

import time
startTime = time.perf_counter()
time.sleep(3)
endTime = time.perf_counter()
print(endTime - startTime)

实例:文本进度条

需求:采用字符串方式打印可以动态变化的文本进度条,进度条要能在一行中逐渐变化。

先使用循环做一个雏形

import time
progress = 10
print('-----执行开始-----')
for i in range(progress   1):
    a = '*' * i
    b = '.' * (progress - i)
    c = (i/progress) * 100
    print('{:^3.0f}%[{}->{}]'.format(c,a,b))
    time.sleep(0.1)
print('-----执行结束-----')

增加“文本进度条”单行动态刷新功能

  • \r : 打印后光标退回到之前的位置
import time
progress = 10
print('-----执行开始-----')
for i in range(progress   1):
    a = '*' * i
    b = '.' * (progress - i)
    c = (i/progress) * 100
    print('\r{:^3.0f}%[{}->{}]'.format(c,a,b),end='' )
    time.sleep(0.1)
print('-----执行结束-----')

补全功能

import time
progress = 50
print('执行开始'.center(progress//2,'-'))
startTime = time.perf_counter() # 执行开始时间
for i in range(progress   1):
    a = '*' * i
    b = '.' * (progress - i)
    c = (i/progress) * 100
    dur = time.perf_counter() - startTime # 当前程序运行时间
    print('\r{:^3.0f}%[{}->{}]{:.2f}s'.format(c,a,b,dur),end='' )
    time.sleep(0.1)
print('\n'   '执行结束'.center(progress//2,'-'))

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多