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