在日常開發中,我們經常會遇到一些需要進行時間控制的任務,比如備份、運行某個軟件等,而這些任務通常都要求有較高的時間精度。Python作為一門強大的編程語言,提供了多種實現精準時間控制的方法。
一、使用time模塊
time模塊是Python標準庫中用於時間操作的庫,其中包含多個與時間相關的函數和方法。其中,time.time()方法可以返回當前時間的時間戳,即從1970年1月1日00:00:00開始到現在的秒數,精確到小數點後6位。
import time print(time.time())
輸出:
1587970818.505151
而time.sleep()可以讓程序等待一段指定的時間,單位為秒。例如下面的代碼可以使程序暫停5秒。
import time time.sleep(5)
二、使用datetime模塊
datetime是Python的一個時間操作庫,可以處理日曆、日期等時間相關的操作。datetime.datetime.now()方法可以返回當前時間,可以通過strftime()方法將時間轉換為指定的格式。
import datetime now = datetime.datetime.now() print(now.strftime("%Y-%m-%d %H:%M:%S"))
輸出:
2020-04-27 18:27:26
datetime.timedelta可以用於時間差(即兩個時間之間的時間差)。下面的代碼可以獲取兩個時間之間的差值並打印出來。
import datetime start_time = datetime.datetime.now() # 這裡是要執行的代碼 end_time = datetime.datetime.now() print(end_time - start_time)
三、使用sched模塊
sched模塊是Python中的一個事件調度器,可以用於實現定時任務。其中sched.scheduler類是事件調度器的核心,可以通過enter()方法將事件添加到事件隊列中,再通過run()方法運行事件隊列中的事件。例如下面的代碼可以每3秒打印一次當前時間。
import datetime import sched import time def print_time(): print(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")) scheduler = sched.scheduler(time.time, time.sleep) while True: scheduler.enter(3, 0, print_time, ()) scheduler.run()
四、使用crontab命令
Crontab命令是Linux系統下的一個定時任務管理工具,可以在指定的時間點自動運行腳本等。可以通過Python的subprocess模塊來調用Crontab命令。下面的代碼可以在每周一到周五的早上9點運行一個Python腳本。
import subprocess cron_cmd = "echo '0 9 * * 1-5 python /path/to/script.py' | crontab -" subprocess.check_output(cron_cmd, shell=True)
總之,Python提供了多種實現精準時間控制的方法,更加方便我們在開發中進行時間操作。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/227265.html