0

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

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

非常感谢!

4

2 回答 2

1

使用select.select()onsys.stdin将允许您检查是否在终端上按下了某个键。

于 2010-05-21T13:33:25.017 回答
1

鉴于上一个答案中的评论,您需要一个非阻塞功能来判断是否按下了任何键,而不是在按下键后立即触发的东西。

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

于 2015-12-22T10:19:10.637 回答