Python pynput事件执行两次

Python pynput事件执行两次,python,pynput,Python,Pynput,按空格类型ww。我如何重写它,使它只按w一次?好吧,我想出来了。似乎keyboard.Events()记录了按键按下和按键释放时的按键事件。意思是 def pressLetter(charIn): val = getKeyValue(charIn) PressKey(val) return def KeyboardEvents(): from pynput import keyboard with keyboard.Events() as events:

按空格类型ww。我如何重写它,使它只按w一次?

好吧,我想出来了。似乎keyboard.Events()记录了按键按下和按键释放时的按键事件。意思是

def pressLetter(charIn):
    val = getKeyValue(charIn)   
    PressKey(val)
    return

def KeyboardEvents():
from pynput import keyboard
    with keyboard.Events() as events:
    for event in events:
        if event.key == keyboard.Key.space:
            pressLetter('w')
按w两次,因为它在按下键和释放键时都执行。 我找到的解决方案是使用keyboard.Listener()代替

if event.key == keyboard.Key.space:
            pressLetter('w')
def pressLetter(charIn):
    val = getKeyValue(charIn)   
    PressKey(val)
    return

def on_press(key):
    if key == keyboard.Key.space:
        pressLetter('w')

def on_release(key):
    if key == keyboard.Key.esc:
        return False

with keyboard.Listener(on_press=on_press, on_release=on_release) as listener:
    listener.join()

listener = keyboard.Listener(on_press=on_press, on_release=on_release)
    listener.start()