【发布时间】:2020-12-10 06:17:24
【问题描述】:
我正在尝试找到一种方法让我的 python 程序持续运行,但确保主脚本仅在夜间时段(例如,在 21:30 到 04:30 之间)“活动”
背景:我的程序录制动作激活视频并激活泛光灯。
主程序段如下:
...我现在每天晚上都运行它,然后在早上用 Ctrl-C 杀死...!
try:
signal.signal(signal.SIGHUP,SigHandler) # proper exit for SIGHUP (terminal hangups)
while GPIO.input(PIR_PIN)==1: # Loop until PIR output is stabilised at 0
pass
GPIO.add_event_detect(PIR_PIN, GPIO.RISING, callback=MotionDetected)
signal.pause() #pauses main program forever & waits for PIR Rising Edge unless interrupted
except KeyboardInterrupt:
print("")
finally:
GPIO.output(16, GPIO.LOW) #floodlight off
GPIO.cleanup()
有没有办法在并行线程中定期检查时间,并在特定小时之间暂停程序?
如果我在 try 语句之前添加线程语句,下面发布的解决方案是否适用于我的程序?...
【问题讨论】:
-
通常应该在操作系统级别处理。
-
带有 time.sleep() 的时间模块是你需要的工具,这里有一个完整的教程journaldev.com/15797/python-time-sleep
-
@Cyber-Tech 无法工作,因为主线程暂停并等待事件。它不能同时检查等待输入时已经过去了多少时间。
标签: python python-3.x python-multithreading scheduling exit