Python键盘记录器按时间间隔打印记录的字符

时间:2020-06-14 21:54:44

标签: python logging pynput

因此,我基本上是使用Python制作键盘记录程序,但我希望间隔一段时间(例如每分钟(或者更困难的是每15个字符))在控制台中打印出记录的字符。但是我不知道该怎么做,首先:将登录的键保存为可以打印的字符串,其次如何在一定间隔内将其打印出来。

代码在这里:

from pynput.keyboard import Key, Listener
import logging

logging.basicConfig(filename='log.txt', level=logging.INFO, format='%(asctime)s: %(message)s')


def on_press(key):
    logging.info(key)


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

打印出的日志应如下所示(与文件中的相同):

2020-06-14 23:50:00,875: 'E'
2020-06-14 23:50:01,575: 'x'
2020-06-14 23:50:01,918: 'a'
2020-06-14 23:50:02,464: 'm'
2020-06-14 23:50:03,225: 'p'
2020-06-14 23:50:03,464: 'l'
2020-06-14 23:50:03,765: 'e'

1 个答案:

答案 0 :(得分:0)

我建议设置一个后台线程。您可以使用df_out=s1.div(s2).reset_index() 将对象传递给它。

Queue

然后您将import threading import queue import time def emptyQueue(q): letters = [] while not q.empty(): letters.append(q.get()) if letters: logging.info(', '.join(letters)) def backgroundLogger(q, shouldEnd): while not shouldEnd.wait(60): emptyQueue(q) emptyQueue(q) q = queue.Queue() killBackground = threading.Event() t = threading.Thread(target=backgroundLogger, args=(q, killBackground)) t.start() 行更改为

with

程序完成后,运行

with Listener(on_press=q.put) as listener: