在python中检测按键?

我正在用python开发一个秒表类型的程序,我想知道如何检测是否按下了一个键(例如p表示暂停,s表示停止),而我不希望它像raw_input这样等待用户输入,然后继续执行。有人知道如何在while循环中执行此操作吗?

另外,我想做这个跨平台的,但是如果那不可能,那么我的主要开发目标是linux

回答:

对于那些在窗户上努力寻找可行答案的人,我的是:pynput

from pynput.keyboard import Key, Listener

def 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, GetForegroundWindow

current_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

回到顶部