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

时间:2010-05-21 13:29:42

标签: python console chat interrupt

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

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

非常感谢!

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

鉴于上一个答案中的注释,您需要一个非阻塞函数来判断是否按下了任何键,而不是按下键后立即触发的键。

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