【问题标题】:Comparing a KeyCode object to string in python将 KeyCode 对象与 python 中的字符串进行比较
【发布时间】:2019-06-16 15:21:08
【问题描述】:

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

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

我明白了:

'a'
< class 'str'>
False

【问题讨论】:

标签: python keycode pynput


【解决方案1】:

使用下一个:

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()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 2013-02-12
    • 1970-01-01
    • 2015-01-29
    • 1970-01-01
    • 2021-03-04
    相关资源
    最近更新 更多