I'm trying to measure time between key presses and time between a key press and key release. This is the code I have so far:
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()
The problem I'm having is that the time between key presses seems way off. If I'm hammering the key I'm getting a delay of around 300 ms. This seems way to long since I'm spamming the key. So anyone got an idea of what might be wrong?
EDIT: Reduce file input, timing still seems off.