我正在尝试在python中的按键上触发功能。我正在使用Pynput库的listen函数,该函数返回Keycode对象。 我尝试将对象转换为字符串,但以下代码仍返回以下输出(按“ a”键时):
def on_press(key):
mod = str(key)
print(mod)
print(type(mod))
print(mod=='a')
我得到:
'a'
< class 'str'>
False
答案 0 :(得分:0)
使用下一个:
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()