我一直试图在Python程序中检测到按键。我想在不使用Tkinter,curses
或raw_input
的情况下找到一种方法。这就是我要去的地方:
while True:
if keypressed==1:
print thekey
有谁知道这是怎么回事?
答案 0 :(得分:5)
Python有一个keyboard模块,具有许多功能。安装它,也许使用此命令:
pip3 install keyboard
然后在代码中使用它:
import keyboard #Using module keyboard
while True:#making a loop
try: #used try so that if user pressed other than the given key error will not be shown
if keyboard.is_pressed('a'): #if key 'a' is pressed
print('You Pressed A Key!')
break #finishing the loop
else:
pass
except:
break #if user pressed other than the given key the loop will break
您可以设置多个密钥检测:
if keyboard.is_pressed('a') or keyboard.is_pressed('b') or keyboard.is_pressed('c'):
#then do this
答案 1 :(得分:1)
我冒昧地稍微编辑你的问题所以它是有道理的并且有答案,至少在Windows上。 (IDLE只通过tk的tkinter接口与键盘交互。)在Windows上,答案是使用msvcrt module's console io functions
import msvcrt as ms
while True:
if ms.kbhit():
print(ms.getch())
对于其他系统,您必须找到等效的系统特定呼叫。对于posix系统,这些可能是诅咒的一部分,你说你没有使用它,但我不知道。
运行程序时,这些函数无法正常运行,在默认模式下从IDLE运行。对于其他图形模式IDE也是如此。