【发布时间】:2011-09-14 23:47:43
【问题描述】:
如何在 python 中处理键盘事件?更确切地说,我需要为我的命令行应用程序管理键盘箭头和其他一些键。 是否有一个模块,或者我需要使用例如“if get(key)==(mykey): do something”(它是伪代码)来逐个处理? 我在 Gnu/Linux 操作系统上。
【问题讨论】:
如何在 python 中处理键盘事件?更确切地说,我需要为我的命令行应用程序管理键盘箭头和其他一些键。 是否有一个模块,或者我需要使用例如“if get(key)==(mykey): do something”(它是伪代码)来逐个处理? 我在 Gnu/Linux 操作系统上。
【问题讨论】:
cmd 模块是否适合您的需求?例如,它通过箭头键处理命令行历史记录以及完成。
如果您需要捕获单个键,则有一个跨平台的 recipe (另请参阅 StackOverflow 上的 Python read a single character from the user)。
【讨论】:
您可能正在寻找 python (n)curses 库。这将允许“绕过”您的终端缓冲并直接使用按键。
【讨论】:
jkerian 的curses 建议是一个很好的建议,如果您正在使用 Unix/Linux/等,那么它就是一个可以使用的建议。 (您就是),但如果您最终在 Windows 环境中工作,那么您肯定会想要查看 pywin32 及其 win32con 模块,它包装了 Windows API 的控制台函数和结构。
【讨论】:
我发现了另一个有趣的模块,它使用起来很简单,我会使用它!该模块是 readline ,您只需将其导入即可拥有 bash shell(处理键盘、历史列表等)“模拟”。它适用于 *nix 系统。我刚开始使用 python 语言,我还不知道所有模块。 readline
【讨论】: