python时间库——time标准模块,文本进度条

一、time库的基本介绍

三个基本获得时间的函数
函数 描述
time() 获取当前的时间戳,即计算机内部时间的值,浮点数表示
ctime() 获取当前时间。并以可读的形式展示,返回时间串
gmtime() 获取当前的时间,表示为计算机可处理的形式,用于其他程序的使用,获取的是时间变量。用来给其他程序提供参数

时间戳: 格林威治时间1970年01月01日00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。
Python中获取时间的常用方法是,先得到时间戳,再将其转换成想要的时间格式。

>>> import time
>>> time.time()
1558249620.287167
>>> time.ctime()
'Sun May 19 15:07:08 2019'
>>> time.gmtime()
time.struct_time(tm_year=2019, tm_mon=5, tm_mday=19, tm_hour=7, 
tm_min=8, tm_sec=48, tm_wday=6, tm_yday=139, tm_isdst=0)

二、时间格式化

将时间以合理的形式展现出来,类似于字符串的格式化,展示需要特定的格式化控制字符,我们一般使用strftime()方法。

基本用法:
python时间库——time标准模块,文本进度条_第1张图片
格式化字符串:
python时间库——time标准模块,文本进度条_第2张图片
python时间库——time标准模块,文本进度条_第3张图片

>>> t = time.gmtime()
>>> time.strftime("%Y-%m-%d %H:%M:%S",t)
'2019-05-19 08:10:04'

strptime()相当于strftime()的互补方法,可以将字符串转换为计算机内部时间的格式。
python时间库——time标准模块,文本进度条_第4张图片

>>> timeStr="2019-05-19 03:10:00"
>>>> time.strptime(timeStr,"%Y-%m-%d %H:%M:%S")
time.struct_time(tm_year=2019, tm_mon=5, tm_mday=19, tm_hour=3,
 tm_min=10, tm_sec=0, tm_wday=6, tm_yday=139, tm_isdst=-1)

三、程序的计时应用

python时间库——time标准模块,文本进度条_第5张图片
python时间库——time标准模块,文本进度条_第6张图片

文本进度条

多行刷新:

程序:
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(1)
print("-----执行结束-----")
执行结果:
-----执行开始-----
 0 %[->..........]
10 %[*->.........]
20 %[**->........]
30 %[***->.......]
40 %[****->......]
50 %[*****->.....]
60 %[******->....]
70 %[*******->...]
80 %[********->..]
90 %[*********->.]
100%[**********->]
-----执行结束-----

单行刷新:
刷新的本质就是让后面的输出覆盖掉之前的输出。

import time
for i in range(101):
    print("\r{:3}%".format(i),end=" ")
    time.sleep(1)
## “\r”表示让光标回到行首,print函数是默认换行的,在后面加“end = " " ”可以使其不换行输出。

优化:

代码:
import time
scale = 50
print("执行开始".center(scale//2,"-"))  ##str.center()函数提供使字符串居中,不够自动填充的功能。第一个参数为最后长度,第二个参数为填充字符
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")
print("执行结束".center(scale//2,"-"))
执行结果:
-----------执行开始----------
100%[**************************************************->]5.02s 

-----------执行结束----------

你可能感兴趣的:(python)