一、引入
在編寫代碼時,我們常常需要等待一段時間後再執行後面的代碼。比如,在進行爬蟲時,為了避免因過快的請求而被封禁IP,我們需要等待一段時間再繼續請求。或者在程序運行中,我們希望將一些操作間隔一些時間進行,而不是一下子全部執行完畢。這時,Python的睡眠函數就派上用場了。
Python的睡眠函數是一種在執行程序時暫停一段時間的函數,它能夠在程序中添加時間間隔,讓程序在規定時間後繼續執行。
二、time模塊
1. 基礎使用
time模塊是一個Python標準庫模塊,主要提供與時間相關的各種函數,包括時間獲取、格式化、時間間隔計算等。其中,最常見的就是time.sleep()函數,能夠休眠程序的執行。
import time print("start") time.sleep(2) # 休眠2秒 print("end")
在上述代碼中,通過導入time模塊,使用time.sleep()函數休眠程序的執行2秒。
2. 睡眠時間的指定
time.sleep()函數的參數是以秒為單位的浮點數,表示程序暫停的時間。一般情況下,我們需要精確指定程序休眠的時間,這時可以使用time模塊提供的clock()函數。
import time start_time = time.clock() # 開始時間 time.sleep(2) # 休眠2秒 end_time = time.clock() # 結束時間 print("sleep time: ", end_time - start_time) # 輸出休眠時間
在上述代碼中,通過使用time.clock()函數獲取程序休眠前後的時間,並計算差值得出程序休眠的時間。
3. 時間格式化
time模塊還提供了很多函數來對時間進行格式化,比如strftime()、gmtime()等。
import time # 格式化 print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
在上述代碼中,使用strftime()函數對當前時間進行格式化輸出,輸出結果形如:2021-11-11 11:11:11。
三、datetime模塊
Python中的datetime模塊也能夠實現程序休眠,與time模塊相比,datetime模塊提供了更多處理時間的方法。
1. 基礎使用
import datetime print("start") datetime.datetime.now() datetime.datetime.now() datetime.datetime.now() print("end")
在上述代碼中,通過導入datetime模塊,使用datetime.datetime.now()函數獲取當前時間並暫停了3次,從而實現程序的休眠。
2. 睡眠時間的指定
datetime模塊的sleep函數與time模塊有所不同,它的參數是一個時間間隔值,以小時、分鐘、秒甚至微秒為單位。
import datetime print(datetime.datetime.now()) datetime.datetime.now() datetime.datetime.now() datetime.datetime.now() datetime.datetime.now() datetime.datetime.now() print(datetime.datetime.now())
在上述代碼中,通過使用datetime.timedelta()函數來指定程序休眠的時間間隔。console輸出結果:
2021-11-11 11:11:11.111111 2021-11-11 11:11:11.111111 2021-11-11 11:11:11.111111 2021-11-11 11:11:11.111111 2021-11-11 11:11:11.111111 2021-11-11 11:11:11.111111 2021-11-11 11:11:12.111111
3. 時間格式化
datetime模塊同樣提供了格式化函數strftime()
import datetime print(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
在上述代碼中,使用strftime()函數對當前時間進行格式化輸出,輸出結果形如:2021-11-11 11:11:11。
四、總結
通過本文的介紹,我們了解了Python的睡眠函數可以讓我們在程序的執行中設置時間間隔,進而實現程序的延遲、等待、休眠等功能,幫助我們更加精確地控制程序的執行。同時,我們還學習到了如何使用time模塊和datetime模塊來實現程序的睡眠功能。
更多關於Python睡眠函數的用法,可以參考Python官方文檔。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/245697.html