簡體   English   中英

運行時鍾和觸發

[英]running clock and triggering

不斷運行時鍾並每5秒觸發一次其他功能。

請告訴我如何做到這一點。

謝謝一堆

>>> import sched, time
>>> s = sched.scheduler(time.time, time.sleep)
>>> def print_time():
...     s.enter(5, 1, print_time, ())
...     print "From print_time", time.time()
... 
>>> s.enter(0, 1, print_time, ())
Event(time=1265846894.4069381, priority=1, action=<function print_time at 0xb7d1ab1c>, argument=())
>>> s.run()
From print_time 1265846894.41
From print_time 1265846899.41
From print_time 1265846904.42
From print_time 1265846909.42
import time

while True:
    time.sleep(5)
    someFunction()

正如gnibbler所說,間隔實際上是(5秒+運行someFunction所需的時間)。 如果你需要它恰好是5秒:

targetTime = time.time()
while True:
    someFunction()
    targetTime += 5
    sleepTime = targetTime - time.time()
    if sleepTime>0:
        time.sleep(sleepTime)

您可以使用sched模塊中的調度程序。

只需使計划的函數在每次完成時重新安排。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM