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()方法。

基本用法:
在這裏插入圖片描述
格式化字符串:
在這裏插入圖片描述
在這裏插入圖片描述

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

strptime()相當於strftime()的互補方法,可以將字符串轉換爲計算機內部時間的格式。
在這裏插入圖片描述

>>> 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)

三、程序的計時應用

在這裏插入圖片描述
在這裏插入圖片描述

文本進度條

多行刷新:

程序:
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 

-----------執行結束----------
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章