Python 3 按键检测
Python 3 pressed key detect
Python3中是否有内置支持检测按下哪个键的方法?没有第三方库吗?
我在 Google 中搜索过,大多数答案都使用外部库。有没有办法使用 Pure python 来做到这一点?
我得到了一些答案,我不知道所有导入的库是否都是内置的 python,但它工作得很好
#!/usr/bin/python3
# adapted from https://github.com/recantha/EduKit3-RC-Keyboard/blob/master/rc_keyboard.py
import sys, termios, tty, os, time
def getch():
fd = sys.stdin.fileno()
old_settings = termios.tcgetattr(fd)
try:
tty.setraw(sys.stdin.fileno())
ch = sys.stdin.read(1)
finally:
termios.tcsetattr(fd, termios.TCSADRAIN, old_settings)
return ch
button_delay = 0.2
while True:
char = getch()
if (char == "p"):
print("Stop!")
exit(0)
if (char == "a"):
print("Left pressed")
time.sleep(button_delay)
elif (char == "d"):
print("Right pressed")
time.sleep(button_delay)
elif (char == "w"):
print("Up pressed")
time.sleep(button_delay)
elif (char == "s"):
print("Down pressed")
time.sleep(button_delay)
elif (char == "1"):
print("Number 1 pressed")
time.sleep(button_delay)
Python3中是否有内置支持检测按下哪个键的方法?没有第三方库吗?
我在 Google 中搜索过,大多数答案都使用外部库。有没有办法使用 Pure python 来做到这一点?
我得到了一些答案,我不知道所有导入的库是否都是内置的 python,但它工作得很好
#!/usr/bin/python3
# adapted from https://github.com/recantha/EduKit3-RC-Keyboard/blob/master/rc_keyboard.py
import sys, termios, tty, os, time
def getch():
fd = sys.stdin.fileno()
old_settings = termios.tcgetattr(fd)
try:
tty.setraw(sys.stdin.fileno())
ch = sys.stdin.read(1)
finally:
termios.tcsetattr(fd, termios.TCSADRAIN, old_settings)
return ch
button_delay = 0.2
while True:
char = getch()
if (char == "p"):
print("Stop!")
exit(0)
if (char == "a"):
print("Left pressed")
time.sleep(button_delay)
elif (char == "d"):
print("Right pressed")
time.sleep(button_delay)
elif (char == "w"):
print("Up pressed")
time.sleep(button_delay)
elif (char == "s"):
print("Down pressed")
time.sleep(button_delay)
elif (char == "1"):
print("Number 1 pressed")
time.sleep(button_delay)