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)
我编写了一个小脚本,每 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)