首页 > 解决方案 > 我似乎无法让这个循环与 pynput 一起工作

问题描述

我正在开发一个键盘记录器,这样我就可以跟踪我在工作中所做的一些操作,并且我希望每 10 秒左右更新一次。这很粗糙,但这是我的代码:

import pynput
from pynput.keyboard import Key, Listener
import time

start = time.time()
keys = []

def on_press(key):
    keys.append(key)
    write_file(keys)
    
def write_file(keys):

    with open('log.txt', 'w') as f:
        for key in keys:

            # removing ''
            k = str(key).replace("'", "")
            f.write(k)

            # explicitly adding a space after 
            # every keystroke for readability

def on_release(key):
    if key == Key.esc:
        # Stop listener
        return False
    
is_true = True    
while is_true == True: 
    with Listener(on_press = on_press,
                  on_release = on_release) as listener:
        listener.join()
    if time.time() - start > 10:
        pynput.keyboard.Listener.stop
        File_object = open(r"log.txt")
        log = File_object.read()
        action = 0
        action_log = ['pena', 'prna', 'pona', 'prtd', 'petd', 'potd', 'podi', 'prdi', 'pedi', 'prbs', 'pobs', 'pebs', 'prvm', 'povm', 'pevm']
        count = 0
        for x in log:
            if x == 'p':
                if log[count:(count+4)] in action_log:
                    action += 1 
            count += 1
        print (action)
        start = time.time()

无论我如何更改循环,if 语句都不会激活,我只是不知道为什么。

标签: pynput

解决方案


推荐阅读