我正在编写通过控制台显示输出的python chatbot。每半秒它会询问服务器更新,并响应消息。在控制台中,我可以看到聊天记录。
这在大多数情况下已经足够了,但是,有时我想中断正常的工作流程并自己编写自定义聊天答案。我希望能够按下一个可以切换到“自定义回复模式”的按钮(或组合)。最好的方法是什么,或者取得类似的结果?
非常感谢!
答案 0 :(得分:1)
在select.select()
上使用sys.stdin
可以检查终端是否按下了某个键。
答案 1 :(得分:1)
鉴于上一个答案中的注释,您需要一个非阻塞函数来判断是否按下了任何键,而不是按下键后立即触发的键。
因此,我建议您使用操作系统上提供的一些终端API。通常这将是curses或win32控制台API。但是,我在asciimatics中为两者写了一个共同的包装器。 get_event()
上的Screen
方法应该提供一种简单的跨平台方式来获取鼠标和键盘事件。要查看它是否是键盘事件,请检查返回事件的类型。如果没有活动,您将获得None
的返回代码,但如果是按下了某个键,您将获得KeyboardEvent
。