Pynput Python: Wenn Taste 'Buchstabe' gedrückt?

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet

Kannst du mit:

from pynput import keyboard

def on_press(key):
    try:
        print('alphanumeric key {0} pressed'.format(
            key.char))
    except AttributeError:
        print('special key {0} pressed'.format(
            key))

def on_release(key):
    print('{0} released'.format(
        key))
    if key == keyboard.Key.esc:
        # Stop listener
        return False

# Collect events until released
with keyboard.Listener(
        on_press=on_press,
        on_release=on_release) as listener:
    listener.join()

# ...or, in a non-blocking fashion:
listener = keyboard.Listener(
    on_press=on_press,
    on_release=on_release)
listener.start()

nichts anfangen?

Bringt dich:

from pynput import keyboard


def on_press(key):
    try:
        if key.char == 'f':
            print("Sprite")
    except AttributeError:
        #es wurde kein Bustabe gedrueckt. 
        #print('special key {0} pressed'.format(key))
        pass


listener = keyboard.Listener(
    on_press=on_press,
    suppress=True)
listener.start()


#deine bestimmt schon vorhandene Schleife:
while(1):
    pass

weiter?

Brockdish 
Fragesteller
 24.09.2019, 14:46

Was ist .format (...) und was ist key.char und key?

0
Kreasteve  24.09.2019, 17:17
@Brockdish

.format() ist eine Methode ("Funktion") der Klasse String.

'alphanumeric key {0} pressed'.format(key.char)
ist das gleiche wie
'alphanumeric key '+ key.char +' pressed'

Key wird vom Listener übergeben und entspricht der Taste die gedrückt/losgelassen wurde, sozusagen noch codiert vom Betriebssystem.

Mit key.char bekommst du den entsprechenden Buchstaben geliefert, der hinter dem key steht, falls verfügbar. Dabei ist "char" ein Attribut (eine "Variable") der Klasse pynput.keyboard.keyCode, das sieht man, wenn man mal in den Sourcecode schaut.

1