在python中检测按键?
我正在用python开发一个秒表类型的程序,我想知道如何检测是否按下了一个键(例如p表示暂停,s表示停止),而我不希望它像raw_input这样等待用户输入,然后继续执行。有人知道如何在while循环中执行此操作吗?
另外,我想做这个跨平台的,但是如果那不可能,那么我的主要开发目标是linux
回答:
对于那些在窗户上努力寻找可行答案的人,我的是:pynput
from pynput.keyboard import Key, Listenerdef on_press(key):
print('{0} pressed'.format(
key))
def on_release(key):
print('{0} release'.format(
key))
if key == Key.esc:
# Stop listener
return False
# Collect events until released
with Listener(
on_press=on_press,
on_release=on_release) as listener:
listener.join()
上面的功能将打印你按下的任何键,并在你释放“ esc”键时开始执行操作。键盘文档在这里用于更多变化的用法。
马库斯·冯·布罗迪(Markus von Broady)
强调了一个潜在的问题,即:这个答案并不需要你在当前窗口中激活此脚本,Windows的解决方案是:
from win32gui import GetWindowText, GetForegroundWindowcurrent_window = (GetWindowText(GetForegroundWindow()))
desired_window_name = "Stopwatch" #Whatever the name of your window should be
#Infinite loops are dangerous.
while True: #Don't rely on this line of code too much and make sure to adapt this to your project.
if current_window == desired_window_name:
with Listener(
on_press=on_press,
on_release=on_release) as listener:
listener.join()
以上是 在python中检测按键? 的全部内容, 来源链接: utcz.com/qa/435637.html