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

2024-03-28 11:11:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我做了一个RGB的LED颜色改变我的设置我的树莓皮3脚本,但我想它使它在晚上11点的灯停止,并在上午9点重新开始。我怎样才能做到这一点? 谢谢您, 幻影


Tags: 脚本led颜色rgb树莓幻影
2条回答

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

你可以检查一下时间是23点(晚上11点),然后关灯,然后让它睡眠36000秒(10小时),然后再开灯。你知道吗

或者,每隔几分钟检查一次时间是上午9点,如果脚本可能在夜间重新启动,请打开灯

示例:

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

这是一个更为幂等的解决方案,它可以确保灯光处于正确的状态,无论何时启动脚本或脚本是否被中断。你知道吗

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)

相关问题 更多 >