我需要在Python终端程序中监听某些按键,而不使用
raw_input
来暂停执行。我见过一些Windows特定的按键监听方法,也见过人们使用像tkinter和pygame这样的大模块,但我想避免这些方法。是否有一个跨平台的轻量级模块可以做到这一点(至少在Ubuntu、Windows、Mac上)?或者是否有一种方法只使用tkinter、pygame等事件系统?如果没有,我应该如何解决这个问题?我的第一个想法是将标准输入重定向到另一个进程,并不断检查它是否包含我的事件键之一。
def kbhit(): ... return sys.stdin.read(1)
- seriyPSmsvcrt
模块的kbhit()
函数,它仅测试按键是否被按下。这是因为它基于 Python FAQ 中获取单个按键的代码。您的修改在有字符输入时获取并丢弃读取的字符,因此该字符将丢失。 - martineau