首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pynput :名称‘NameError’未定义错误pynput

pynput :名称‘NameError’未定义错误pynput
EN

Stack Overflow用户
提问于 2021-02-01 09:21:26
回答 3查看 2.5K关注 0票数 0

我一直试图制作一个键盘记录器,但是在运行脚本时在python中得到了这个错误。

在内部返回f( "C:\Users\David\AppData\Roaming\Python\Python39\site-packages\pynput_util_init_.py",,*args,**kwargs)文件"C:\Users\David\AppData\Roaming\Python\Python39\site-packages\pynput\keyboard_win32.py",行280,在进程self.on_press(键)文件"C:\Users\David\AppData\Roaming\Python\Python39\site-packages\pynput_util_init.py",行127,在内部如果f(*args)是False: File "C:\Users\David\Desktop\TESTING\keylogger\main.py",第16行,在on_press keys.append(str(key)) NameError: name‘key’是未定义的回溯(最近一次调用):文件"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 "C:\Users\David\AppData\Roaming\Python\Python39\site-packages\six.py",(exc_type,exc_value,exc_traceback)文件行702中,在reraise six.reraise(Tb) File "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,进程"C:\Users\David\Desktop\TESTING\keylogger\main.py",(键)文件"C:\Users\David\AppData\Roaming\Python\Python39\site-packages\pynput_util_init.py",行127,内部if f(*args)为False:“C:\Users\David\Desktop\TESTING\keylogger\main.py”,第16行,在on_press keys.append(str(key))中,NameError:名称‘key’未在0.614 s中定义完成

我不知道如何解决这个问题,我已经用pip安装了pyinput,但仍然无法工作:/

代码:

代码语言:javascript
复制
    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()

任何帮助都是徒劳无功的,谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-02-01 09:30:53

您已经在第6行中输入了一个错误,因此keys没有像错误消息所告诉的那样在任何地方声明(例如NameError: name 'keys' is not defined)。

第6行应该改为keys = [] of key = []

票数 0
EN

Stack Overflow用户

发布于 2021-02-01 09:24:53

因为键实际上没有在任何地方定义

,我想你犯了一个拼写错误。

您需要将key = []替换为keys = []

票数 1
EN

Stack Overflow用户

发布于 2021-02-01 09:24:37

我认为您在初始化keys列表时有一个错误。您已经将其声明为key,但您需要keys

你需要:

代码语言:javascript
复制
keys = []

而不是:

代码语言:javascript
复制
key = []
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65990047

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档