【发布时间】:2019-02-18 00:24:02
【问题描述】:
背景是设计一个程序,它在无限循环中运行,从某个地方读取实时数据。我希望这个程序通过键盘交互来控制(没有“Enter”)。为此,我遇到了以下 sn-p。
import msvcrt
def keypress():
try:
if msvcrt.kbhit(): #Keyboard hit?
key = msvcrt.getch().decode("utf-8").lower()
return key
except UnicodeDecodeError:
pass
while not False:
print('rainy rainy rain rain')
if keypress() == "e": #e: exit
exit()
if keypress() == "w": # w: wait
waiting = True
while waiting == True:
print("waiting waiting waiting")
if keypress() == "w":
waiting = False
我知道仅仅为了等待而调用一个新的无限循环是轻率的,但疯狂的是“e”的命中似乎比“w”的命中更成功。但在每种情况下,一些点击甚至根本没有注册。 -> 有没有办法解决这个问题? Windows 也能够捕捉到每一次键盘敲击!
【问题讨论】:
标签: python keyboard keypress msvcrt