Python:等待按键或超时
我有一个在终端里运行的Python脚本,这个脚本每9分钟会执行一次任务。现在,我想随时打断这个等待的过程,让它立刻执行任务。
我该怎么做呢?按下Ctrl+C不行,因为我需要的是停止程序,而不是单纯打断等待。那还有什么其他方法可以在终端窗口和键盘上操作呢?
1 个回答
3
根据托马斯的建议,我想出了这个函数:
import signal
def input_or_timeout(timeout):
def nothing(sig, frame): pass
signal.signal(signal.SIGALRM, nothing)
signal.alarm(timeout)
try:
raw_input()
signal.alarm(0)
except (IOError, EOFError): pass
这个函数最多会等待输入timeout
秒钟。
在Windows系统下,我想你可以用msvcrt
里的getch()
来替换raw_input()
。