我一直在尝试制作键盘记录器,但在运行脚本时在python中遇到此错误。
文件“ C:\ Users \ David \ AppData \ Roaming \ Python \ Python39 \ site-packages \ pynput_util_ init _.py”,第211行,内部返回f(self,* args,** kwargs)文件“ C:\ self \ on_press(key)文件“ C:\ Users \ David \ AppData \ Roaming \ Python \ Python39中的Users \ David \ AppData \ Roaming \ Python \ Python39 \ site-packages \ pynput \ keyboard_win32.py”,第280行\ site-packages \ pynput_util_ init .py“,如果f(* args)为False,则在内部,行127:在on_press中,文件” C:\ Users \ David \ Desktop \ TESTING \ keylogger \ main.py“,行16 keys.append(str(key))NameError:未定义名称“ keys”追溯(最近一次通话为最后):文件“ C:\ Users \ David \ Desktop \ TESTING \ keylogger \ main.py”,第43行,在listener.join()文件“ C:\ Users \ David \ AppData \ Roaming \ Python \ Python39 \ site-packages \ pynput_util_ init_.py“,第259行,加入join.reraise(exc_type,exc_value,exc_traceback)文件“ C:\ Users \ David \ AppData \ Roaming \ Python \ Python39 \ site-packages \ six.py”,在第702行,重新提高价值。with_traceback(tb)文件“ C:\ Users \ David \ AppData \ Roaming \ Python \ Python39 \ site-packages \ pynput_util_ init _.py”,第211行,内部返回f(self,* args,* * kwargs)文件“ C:\ Users \ David \ AppData \ Roaming \ Python \ Python39 \ site-packages \ pynput \ keyboard_win32.py”,第280行,正在处理self.on_press(key)文件“ C:\ Users \ David如果f(* args)为False,则\ appData \ Roaming \ Python \ Python39 \ site-packages \ pynput_util_ init .py“,内部的第127行:文件” C:\ Users \ David \ Desktop \ TESTING \ keylogger \ main。 py“,第16行,位于on_press keys.append(str(key))NameError:名称为'keys'未定义[在0.614秒内完成]
我不知道如何解决这个问题,我已经用pip install pyinput安装了pyinput,但是仍然不起作用:/
码:
import pynput
from pynput.keyboard import Key, Listener
count = 0
key = []
def on_press(key):
global keys, count
keys.append(str(key))
print("{0} pressed".format(key))
if count >= 10:
count = 0
write_file(keys)
keys = ()
def write_file(keys):
with open("log.txt", "w" & "a") as f:
for key in keys:
k = str(key).replace("'","")
f.write(str(key))
def on_release(key):
if key == Key.esc:
return False
with Listener(on_press=on_press,on_release=on_release) as listener:
listener.join()
希望得到任何帮助,谢谢。
您在第6行输入了错字,因此keys
在错误消息告诉您时(例如NameError: name 'keys' is not defined
),并没有在任何地方声明错字。
6号线应改为keys = []
的key = []
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句