3

我正在尝试在 python 中触发按键功能。我正在使用pynput 库的listen 函数,它返回一个Keycode 对象。我尝试将对象转换为字符串,但以下代码仍返回以下输出(按下“a”键时):

def on_press(key):
    mod = str(key)
    print(mod)
    print(type(mod))
    print(mod=='a')

我得到:

'a'
< class 'str'>
False
4

1 回答 1

4

接下来使用:

def on_press(key):
    print(key.char=='a')

上面将打印True.

您的代码无法正常工作,只是因为:

mod = str(key)
print(mod)

会得到'a',但对于普通字符串,print('a')只会打印a,它们不是同一个字符串。你可以用print(len(mod))&来确认print(len('a'))

顺便说一句,接下来是您测试的完整代码:

from pynput.keyboard import Key, Listener
import sys

def on_press(key):
    mod = str(key)
    print(mod)
    print(type(mod))
    print(mod=='a')
    print(key.char=='a')
    print(len(mod))
    print(len('a'))
    sys.exit(0)

def on_release(key):
    pass

with Listener(on_press=on_press, on_release=on_release) as listener:
    listener.join()
于 2019-01-23T05:37:48.433 回答