我想一個函數開始到分鐘的第一秒運行的第一秒運行,但我不能做到這一點 這是我的代碼功能開始在分鐘
import datetime
now = datetime.datetime.now()
while not (now.second == "01"):now = datetime.datetime.now()
我想一個函數開始到分鐘的第一秒運行的第一秒運行,但我不能做到這一點 這是我的代碼功能開始在分鐘
import datetime
now = datetime.datetime.now()
while not (now.second == "01"):now = datetime.datetime.now()
import time
while True:
if time.strftime("%S") == "01":
#Run Your Code
time.sleep(59)
這將砸向你的系統像瘋了似的,給它一點呼吸的空間:
import time
while True:
current_seconds = time.gmtime().tm_sec
if current_seconds == 1:
print("The first second of a minute...")
time.sleep(0.9) # wait at least 900ms before checking again
您可以進一步通過計算多少時間,你又開始檢查前要等待精簡它 - 如果你有興趣在在第一秒鐘內,您可以安全入睡,直到一分鐘結束。
您的代碼不起作用,因爲您將一個數字(now.second
)與字符串"01"
進行比較。在Python編號和它們的字符串表示方式並不相同(不像其他一些編程語言),所以這不會起作用。
嘗試與1
比較(或者如果您真的想要一分鐘的話,可以輸入0
)。也許不是忙碌循環(在等待時將使用您的CPU的全部核心),您應該使用time.sleep
來等待下一分鐘的開始。
import datetime
import time
now = datetime.datetime.now()
sec = now.second
if sec != 0:
time.sleep(60-sec)
# it should be (close to) the top of the minute here!
隨着時間的計算機上打交道時,因爲你的程序可能會與在任何時刻(更可能,如果你的CPU是非常繁忙)由操作系統上運行被推遲總是有一些不可預測性。雖然我不太擔心,但可能會非常接近正確的時間。
你是指什麼在一分鐘的第一秒跑?你的意思是每分鐘運行一次? – depperm
這裏有很多沒有解釋。最終目標是什麼? – pstatix