暂停脚本直到某个时间,然后在另一个特定时间重新开始

时间:2017-06-05 17:29:37

标签: python python-3.x raspberry-pi3

我在我的树莓派3上制作了一个RGB LED变色脚本用于我的设置,但是我希望它能够在晚上11点制作,灯光停止并在上午9点重新开始。我怎样才能做到这一点? 谢谢, PhantomX

2 个答案:

答案 0 :(得分:0)

在python中使用time库,有一个time.localtime()函数,它将当前时间作为结构返回。

你可以检查时间是23(晚上11点),然后关灯,然后让它睡36000秒(10小时),然后重新开灯。

或者,每隔几分钟检查一小时为9(9AM),并在脚本可能在夜间重启的情况下打开灯

示例:

import time

while True:
    if time.localtime().tm_hour == 23:
        lights_off()
        time.sleep(3600) # No need to check for at least 1 hour
    elif time.localtime().tm_hour == 9:
        lights_on()
        time.sleep(3600)
    time.sleep(60) # Checks every  minute

时间文档:https://docs.python.org/3.6/library/time.html#time.localtime

答案 1 :(得分:0)

这是一种更加幂等的解决方案,可以保证灯光处于正确的状态,无论您何时启动脚本或是否被中断。

from datetime import time, datetime
from time import sleep

morning = time(9,0,0)
evening = time(23,0,0)

while True:

    while morning < datetime.now().time() < evening:
        print 'lights on...'
        sleep(1)

    print 'lights off...'
    sleep(1)