Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:在等待时接受输入_Python_Input_Timer_Wait - Fatal编程技术网

Python:在等待时接受输入

Python:在等待时接受输入,python,input,timer,wait,Python,Input,Timer,Wait,我编写了一个小脚本,每5分钟执行一次任务(这不需要精确),但由于它是当前编写的,因此可以取消它的唯一方法是使用Ctrl+Z(linux终端),如果不重新启动脚本,无法更改它执行的任务集 因此,我想更改脚本,使其能够在等待下一次运行时接受用户输入,而不会大量中断5分钟的计时器(就像当前停止脚本并重新启动一样),但我不知道如何让原始输入仅在给定时间内接受值,目前的代码也是用Python2.7编写的,但是我很乐意将其转换为3,如果这使解决方案更容易的话 当前代码如下所示: # Setup for th

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

因此,我想更改脚本,使其能够在等待下一次运行时接受用户输入,而不会大量中断5分钟的计时器(就像当前停止脚本并重新启动一样),但我不知道如何让
原始输入
仅在给定时间内接受值,目前的代码也是用Python2.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)
有什么想法吗


更新:这个问题没有导致发布一个特定的代码解决方案,因此这里有一个链接,指向我实现的解决方案的一个简单版本(以及一个需要它在答案中工作的简单编辑)/

我想你想要类似的东西

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) 

您使用的是无限循环,因此使用ctrl+z退出是显而易见的,不是吗?请您澄清一下您的问题好吗?@ThomasLee谢谢,我以前似乎找不到任何东西,但您链接的解决方案应该会起作用。@AhsanulHaque不太好,让程序在给定的用户输入下优雅地退出(例如,在空行上按enter键)比强制终止进程要好得多。此外,我希望能够在
等待期间输入输入,以更改脚本在每次迭代中执行的任务集,如我在问题中所述。注意:Bash中的Ctrl-Z不会终止进程-它会暂停进程并将其发送到后台。您可以使用
jobs
命令查看当前挂起的作业列表,并使用
fg
job\u spec继续执行挂起的作业;如果当前只有一个挂起的作业,则可以忽略作业规格编号。在bashshell中键入
help jobs
help bg
,&
help bg
,了解更多信息。@PM2Ring是的,我只是快速键入,没有思考。不过,准确一点很好,所以谢谢你的更正。