Python 将脚本暂停到某个特定时间,然后在另一个特定时间重新开始
我在我的raspberry pi 3上做了一个RGB LED颜色改变脚本用于我的设置,但我想让它在晚上11点停止,并在上午9点重新开始。我怎样才能做到这一点? 非常感谢。Python 将脚本暂停到某个特定时间,然后在另一个特定时间重新开始,python,python-3.x,raspberry-pi3,Python,Python 3.x,Raspberry Pi3,我在我的raspberry pi 3上做了一个RGB LED颜色改变脚本用于我的设置,但我想让它在晚上11点停止,并在上午9点重新开始。我怎样才能做到这一点? 非常感谢。 PhantomX使用python中的time库,有一个time.localtime()函数将当前时间作为结构返回 您可以检查时间为23小时(晚上11点),然后关灯,然后让它睡眠36000秒(10小时),然后再打开灯 或者,每隔几分钟检查一次时间为上午9点,如果脚本可能在夜间重新启动,请打开灯 例如: import time
PhantomX使用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
时间文档:这是一个更具幂等性的解决方案,无论何时启动脚本或脚本中断,都可以确保灯光处于正确的状态
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)
from datetime导入时间,datetime
从时间上导入睡眠
上午=时间(9,0,0)
晚上=时间(23,0,0)
尽管如此:
上午
Hi。通过快速的谷歌搜索,我发现树莓有一个crontab。我想使用cron进行设置要比在脚本中进行设置容易得多。当涉及到检查时间时,如果您希望在轮询时时间正好是某个特定值,则可能会发生许多失败案例。检查它是否在X和Y边界内,并根据当前值执行操作更安全。@约翰尼在这种情况下,它正在寻找一个小时值,在60分钟的窗口内,每隔一分钟或两分钟检查一次应该不会有太多错误。同意,但仍然是错误的做法。@Johnny出于好奇,为了将来更好地练习,哪一个界限适用于像这里这样的场景?pi控制我水族馆的灯光。晚上10:30到11:30之间停电。我错过了晚上11点的“关闭”投票,所以他们重新开始,直到我在早上9点再次投票,那时他们比预期的时间多了10个小时。早上9点时,触发器再次(!)显示“打开灯”,因此现在灯会再亮12小时。这将导致晒伤、漂白和珊瑚死亡。因此,虽然为true,但我每X秒轮询一次,看看时间是否在上午9点到晚上11点之间:如果是,lights_on()。如果时间在晚上11点到上午9点之间,则熄灯()。简单的问题,安全的解决方案。