用户[python]停止活动60秒后输入超时(提示)

用户[python]停止活动60秒后输入超时(提示),python,python-3.x,windows,timeout,user-input,Python,Python 3.x,Windows,Timeout,User Input,如果没有来自用户的输入,它应该自动停止,并给出一条消息,用户没有任何活动。我是python的新手。非常感谢您的帮助。使用线程执行以下操作: 导入线程 导入队列 结果\队列=队列。队列() def输入_目标(队列): put(输入('输入消息:')) threading.Thread(target=input\u target,daemon=True,args=(result\u queue,).start() 结果=无 尝试: result=result\u queue.get(超时=1) 队列

如果没有来自用户的输入,它应该自动停止,并给出一条消息,用户没有任何活动。我是python的新手。非常感谢您的帮助。

使用线程执行以下操作:

导入线程
导入队列
结果\队列=队列。队列()
def输入_目标(队列):
put(输入('输入消息:'))
threading.Thread(target=input\u target,daemon=True,args=(result\u queue,).start()
结果=无
尝试:
result=result\u queue.get(超时=1)
队列除外。空:
结果=无
打印([结果])
请注意,线程在达到超时后继续运行,因此后续从stdin读取将不起作用


或者,如果要使后续读取工作,则可以尝试在循环中调用
select.select
(超时)和
os.read(0,…)
,但这在Windows上不起作用(因为Windows上的
select.select
要求文件句柄是套接字,而不是用于控制台输入).

代码以已执行的方式工作,但在连续循环之后,它将变成随机行为,例如:queue.put(输入('Enter the message:')),它显示随机行为,有时按预期工作,但有时即使我们在提示中提供数据,也不作为输出。@Togad:您描述的行为并不奇怪,它与答案相匹配:从stdin进行后续读取将不起作用。。仅供参考,
input(…)
调用也是从stdin读取的。
activity = input("Enter the message:")