import keyboard
pressed = {}
with open('log.txt', 'w') as file:
file.write('{0:<10} {1:<15} {2:<6}\n'.format('Index', 'Key', 'Duration'))
def key_recording(e: keyboard.KeyboardEvent):
if e.name not in pressed and e.event_type == keyboard.KEY_DOWN:
pressed[e.name] = e.time
elif e.name in pressed and e.event_type == keyboard.KEY_UP:
with open('log.txt', 'r+') as file:
file.write("{0:<10} {1:<15} {2:<6}s\n".format(len(file.readlines()) - 1, e.name, round(e.time - pressed.pop(e.name), 3)))
remove = keyboard.hook(key_recording)
try:
input("Press CTRL+C to exit")
except KeyboardInterrupt:
pass
finally:
remove()