我正在尝试运行一个程序,该程序在工作完成时接受输入。我查看了几种表格,并查看了文档。我在 Debian 中运行它,我知道我可以使用这个getch 函数来接收字符而无需按回车键。为了打破它,这就是我试图在我的无限while循环中实现的
- 接受输入(线程在这里对我不起作用
- 将输入放入队列
- 如果没有正在运行的作业,则以队列前面的项目作为变量启动作业
我也在运行线程模块来执行另一条指令。有什么办法可以做到这一点吗?
更新:这是我迄今为止尝试过的:
首先,我尝试使用线程模块中的计时器来阻止它等待,就像这样。
def getchnow():
def time_up():
answer= None
print 'time up...'
wait = Timer(5,time_up) # x is amount of time in seconds
wait.start()
try:
print "enter answer below"
answer = getch()
except Exception:
print 'pass\n'
answer = None
if answer != True: # it means if variable have somthing
wait.cancel() # time_up will not execute(so, no skip)
return answer
line = getchnow()
#Add line variable to queue
#Do stuff with queue
这里的问题是它仍在等待用户输入。
然后我尝试将 getch 函数放入另一个线程。
q = Queue.Queue
q.put(getch())
if q.get() != True: # it means if variable have somthing
line = q.get()
#Add line variable to queue
#Do stuff with queue
这种尝试不会让我做任何事情。