Python - 响应自定义键盘中断

0 投票
2 回答
1871 浏览
提问于 2025-04-15 22:59

我正在写一个用Python制作的聊天机器人,它通过控制台显示输出。每隔半秒钟,它就会向服务器请求更新,并对消息做出回应。在控制台上,我可以看到聊天记录。

这在大多数情况下已经足够了,不过,有时候我想打断正常的工作流程,自己写一些自定义的聊天回复。我希望能够按一个按钮(或者一组按钮),切换到“自定义回复模式”。有什么好的方法可以做到这一点,或者实现类似的效果呢?

非常感谢!

2 个回答

1

根据之前回答中的评论,你需要一个非阻塞的函数来判断是否有按键被按下,而不是一按键就触发的那种。

因此,我建议你使用你操作系统上可用的一些终端API。通常来说,这些API可能是curses或者win32控制台API。不过,我写了一个通用的封装,叫做 asciimatics,可以同时支持这两种。Screen上的 get_event() 方法应该能提供一个简单的跨平台方式来获取鼠标和键盘事件。要判断是否是键盘事件,可以检查返回事件的类型。如果没有事件发生,你会得到一个返回码 None,但如果是按下了某个键,你会得到 KeyboardEvent

1

使用 select.select() 这个方法可以让你检查在终端上是否有按键被按下,特别是针对 sys.stdin 这个输入流。

撰写回答