Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python测量按键之间的时间以及按键和按键释放之间的时间_Python_Pynput - Fatal编程技术网

Python测量按键之间的时间以及按键和按键释放之间的时间

Python测量按键之间的时间以及按键和按键释放之间的时间,python,pynput,Python,Pynput,我试图测量按键之间的时间,以及按键和按键释放之间的时间。这是我目前掌握的代码: import pynput from pynput.keyboard import Key, Listener import time import threading key_pressed_twice = True key_is_pressed = False startPressed = time.time() key_pressed_list = [] key_released_list = [] def

我试图测量按键之间的时间,以及按键和按键释放之间的时间。这是我目前掌握的代码:

import pynput
from pynput.keyboard import Key, Listener
import time
import threading
key_pressed_twice = True
key_is_pressed = False
startPressed = time.time()

key_pressed_list = []
key_released_list = []

def on_press(key):
    global key_is_pressed
    global startRelease
    global key_pressed_twice
    global startPressed

    key_pressed_twice = not key_pressed_twice
    if(key_pressed_twice):
        endPressed = time.time()
        miliSeconds = '%.1f' % ((endPressed-startPressed)*1000) 
        #writeToFile(miliSeconds,"pressed.txt")
        key_pressed_list.append(miliSeconds + ", ")
        startPressed = time.time()
    if key_is_pressed == False:
        startRelease = time.time()
        key_is_pressed = True

def on_release(key):
    global key_is_pressed
    global endRelease
    global startRelease
    key_is_pressed = False
    endRelease = time.time()
    miliSeconds = '%.1f' % ((endRelease-startRelease)*1000) 
    print(miliSeconds)
    key_released_list.append(miliSeconds + ", ")
    if key == Key.esc:
        writeToFile(key_released_list,"release.txt")
        writeToFile(key_pressed_list,"pressed.txt")
        return False

def writeToFile(tempList,filename):
    with open(filename, "a") as file:
        file.write("".join(tempList))


with Listener(
        on_press=on_press,
        on_release=on_release) as listener:
    listener.join()
我遇到的问题是,两次按键之间的时间似乎相差很远。如果我在敲击钥匙,我会得到大约300毫秒的延迟。这似乎是因为我在滥发钥匙。那么有人知道可能是什么错了吗


编辑:减少文件输入,计时似乎仍然不正确。

这是否回答了您的问题@Pitto No,这似乎适用于按键和释放按键之间的时间。我遇到的问题是两次按键之间的时间。我按“a”到第二次按“a”需要多长时间?注意:不必是同一个键。这是否回答了您的问题@Pitto No,这似乎适用于按键和释放按键之间的时间。我遇到的问题是两次按键之间的时间。我按“a”到第二次按“a”需要多长时间?注意:不必是同一个键