我想写一个程序来计算键盘上一个键被按下的频率(例如每天)。我可以使用Pynput来识别某个按键,但我在计算部分遇到了困难。这是我到目前为止所得到的:
from pynput.keyboard import Key, Listener
i = 0
def on_press(key, pressed):
print('{0} pressed'.format(
key))
if pressed({0}):
i = i + 1
def on_release(key):
if key == Key.esc:
# Stop listener
return False
# Collect events until released
with Listener(
on_press=on_press,
on_release=on_release) as listener:
listener.join()这将执行以下错误:TypeError: on_press() missing 1 required positional argument: 'pressed'
我也不知道怎么把所有26个字母分开,也不知道该怎么做now...does,有人知道该怎么做吗?
发布于 2020-09-20 01:25:16
我自己也在试着解决这个问题。为了回答这个错误的要求,它希望您在传递给on_press的参数中定义参数"pressed“。
例如。
def on_press(key, pressed=0):
print('{0} pressed'.format(
key))
if pressed({0}):
i = i + 1该块上方的i=0超出了on_press块的作用域,因此无法使用。
我遇到的问题是,我可以让它递归地计算击键次数,但是它不会停止,只需一次击键就会达到最大递归深度!
如果我有任何进展,我会再回复的。也祝你好运!
-我想通了!-下面的链接指向另一篇StackOverflow帖子,让我找到了正确的方向:Checking a specific key with pynput in Python
这是我的代码。它将显示键入的字符,并增加键入的键数:
from pynput.keyboard import Key, Listener
strokes = 0
def on_press(key):
if key == Key.esc:
return False
print('{0} pressed'.format(
key))
global strokes
strokes += 1
print(strokes)
with Listener(
on_press=on_press) as listener:
listener.join()我希望这能帮到你!
https://stackoverflow.com/questions/63670700
复制相似问题