类型(列表[0])returnspynput.keyboard._win32.KeyCode
type(list[0]) returns pynput.keyboard._win32.KeyCode
我的问题是 pynput
return 如何处理数据(我希望你会这么说?)。
所以我想做的是让侦听器记录键盘输入,然后使用添加到列表中的字母在 word 中创建一个字符串。虽然,这些字母似乎不是字符串。相反,他们 return 为 pynput.keyboard._win32.KeyCode
有没有办法将其转换为 python 可读字符串或其他内容?
比如:我输入了 f, t, w
print(type(list[0]), word)
return 'f', ftw
目前的结果是
f[] pressed
t['f'] pressed
w['f', 't'] pressed
['f', 't', 'w'] pressed
['f', 't', 'w'] <class 'pynput.keyboard._win32.KeyCode'> # then basically nothing for word
[] pressed
from pynput import keyboard
list = []
word = ''.join(list)
def press(key):
print(list, 'pressed')
if key is not keyboard.Key.space:
list.append(key)
elif keyboard.Key.space is key:
pass
elif keyboard.Key.enter is key:
pass
def release(key):
if key == keyboard.Key.space:
print(type(list[0]), word)
if word in hkey:
func()
list.clear()
with keyboard.Listener(on_press=press, on_release=release) as listener:
listener.join()
您可以使用 pynput.keyboard._win32.KeyCode
的 char
属性从按下的键中提取字符。换句话说,在您的 press
函数中,您会将 key.char
附加到列表中。另外,我会避免使用 list
作为变量名。
def press(key):
print(_list, 'pressed')
if key is not keyboard.Key.space:
_list.append(key.char) # <-- Note: key.char
elif keyboard.Key.space is key:
pass
elif keyboard.Key.enter is key:
pass
我的问题是 pynput
return 如何处理数据(我希望你会这么说?)。
所以我想做的是让侦听器记录键盘输入,然后使用添加到列表中的字母在 word 中创建一个字符串。虽然,这些字母似乎不是字符串。相反,他们 return 为 pynput.keyboard._win32.KeyCode
有没有办法将其转换为 python 可读字符串或其他内容?
比如:我输入了 f, t, w
print(type(list[0]), word)
return 'f', ftw
目前的结果是
f[] pressed
t['f'] pressed
w['f', 't'] pressed
['f', 't', 'w'] pressed
['f', 't', 'w'] <class 'pynput.keyboard._win32.KeyCode'> # then basically nothing for word
[] pressed
from pynput import keyboard
list = []
word = ''.join(list)
def press(key):
print(list, 'pressed')
if key is not keyboard.Key.space:
list.append(key)
elif keyboard.Key.space is key:
pass
elif keyboard.Key.enter is key:
pass
def release(key):
if key == keyboard.Key.space:
print(type(list[0]), word)
if word in hkey:
func()
list.clear()
with keyboard.Listener(on_press=press, on_release=release) as listener:
listener.join()
您可以使用 pynput.keyboard._win32.KeyCode
的 char
属性从按下的键中提取字符。换句话说,在您的 press
函数中,您会将 key.char
附加到列表中。另外,我会避免使用 list
作为变量名。
def press(key):
print(_list, 'pressed')
if key is not keyboard.Key.space:
_list.append(key.char) # <-- Note: key.char
elif keyboard.Key.space is key:
pass
elif keyboard.Key.enter is key:
pass