Python: 等待时接受输入

Python: Accept input while waiting

我编写了一个小脚本,每 5 分钟执行一次任务(这不需要很精确),但由于目前编写的,唯一可以取消它的方法是使用 Ctrl+Z (linux 终端)并且如果不重新启动脚本就无法更改它执行的任务集。

因此,我想将脚本更改为能够在等待 执行下一个 运行 时接受用户输入 ,而不会中断 5-任何大量的分钟计时器(就像杀死脚本并重新启动当前所做的那样),但我无法弄清楚如何让 raw input 只接受给定时间的值,等等。当前代码也写在Python 2.7,但我很乐意转换为 3,如果这样可以使解决方案更容易。

当前代码如下所示:

# Setup for the tasks
while(True):
    # Do the tasks
    for i in range(5):
        print "Next run in " + str(5-i) + " mins"
        time.sleep(60)

有什么想法吗?

更新:这个问题并没有导致发布特定的代码解决方案,所以这里有一个 link 到 的解决方案的简单版本(还有一个简单的编辑,它需要它在答案中工作)/

我想你想要这样的东西。

import threading

def takeInput():
    """This function will be executed via thread"""
    value = raw_input("what you want:")
    return

#initialize how you want
value = 0 
t = threading.Thread(target=takeInput)
t.start()
time.sleep(5)