Python-对自定义键盘中断作出反应

Python-对自定义键盘中断作出反应,python,console,chat,interrupt,Python,Console,Chat,Interrupt,我正在编写通过控制台显示输出的python聊天机器人。每隔半秒钟,它就会向服务器请求更新,并对消息做出响应。在控制台中,我可以看到聊天日志 这在大多数情况下是足够的,但是,有时我想中断正常的工作流程,自己编写自定义聊天答案。我希望能够按下一个按钮(或组合),将切换到“自定义回复模式”。实现这一目标或达到类似结果的最佳方法是什么 非常感谢 使用sys.stdin上的select.select()可以检查终端是否按下了某个键。根据前面答案中的注释,您需要一个非阻塞功能来判断是否按下了任何键,而不是按

我正在编写通过控制台显示输出的python聊天机器人。每隔半秒钟,它就会向服务器请求更新,并对消息做出响应。在控制台中,我可以看到聊天日志

这在大多数情况下是足够的,但是,有时我想中断正常的工作流程,自己编写自定义聊天答案。我希望能够按下一个按钮(或组合),将切换到“自定义回复模式”。实现这一目标或达到类似结果的最佳方法是什么


非常感谢

使用
sys.stdin
上的
select.select()
可以检查终端是否按下了某个键。

根据前面答案中的注释,您需要一个非阻塞功能来判断是否按下了任何键,而不是按键一按下就触发的某个键


因此,我建议您使用操作系统上可用的一些终端API。通常这是curses或win32控制台API。然而,我已经在中为这两个组件编写了一个通用的包装器。
屏幕上的
get_event()
方法应该提供一种简单的跨平台方式来获取鼠标和键盘事件。要查看是否是键盘事件,请检查返回事件的类型。如果没有事件,则返回代码为
None
,但如果是按键,则返回
KeyboardEvent

您可以给出select.select()参数的示例吗?我在谷歌上搜索,只找到与windows相关的bug(我使用的是UNIX控制台)。我需要哪种参数-rlist、wlist或xlist?谢谢伟大的这非常有效:def hearder():i,o,e=select.select([sys.stdin],[],[],1)用于i中的s:if s==sys.stdin:input=sys.stdin.readline()返回True返回False