2

这可能非常简单,但是如何让 python 代码在时间 y 和 z 之间每 x 分钟循环一次?

例如,如果我希望我的脚本在午夜 (00:00) 到晚上 10 点 (22:00) 之间运行,每 5 分钟循环一次。

4

1 回答 1

7

试试标准库中的sched模块。下面是一个每秒调用一次函数的示例,从未来 5 秒开始,在未来 10 秒结束:

from sched import scheduler
from time import time, sleep

s = scheduler(time, sleep)

def run_periodically(start, end, interval, func):
    event_time = start
    while event_time < end:
        s.enterabs(event_time, 0, func, ())
        event_time += interval
    s.run()

if __name__ == '__main__':

    def say_hello():
        print 'hello'    

    run_periodically(time()+5, time()+10, 1, say_hello)

或者,您可以使用threading.Timer,但您需要做更多的工作才能让它在给定时间启动,每五分钟运行一次,并在固定时间停止。

于 2013-06-02T02:24:16.063 回答