在python中,如何创建一个定时器来计时某个键被按下的时间?

在python中,如何创建一个定时器来计时某个键被按下的时间?,python,pyautogui,pynput,Python,Pyautogui,Pynput,是否可以在按下某个键时启动计时器,然后在松开该键时,打印该键按了多长时间而没有time.sleep()?如果是这样,是否可以同时使用多个键执行此操作,并打印每个键按下的时间?例如:如果我按住“w”10秒,然后同时按住“d”5秒(同时按住w),我可以计算每个键按下的时间,然后将计数的时间放入列表或元组中,以便稍后使用数字吗?对于计时器,要记住的主要一点是,当按下一个键时,该键会重复并重新触发“按键按下”事件。要存储每个键的开始时间,可以使用字典。在key down事件中,检查字典中的密钥,如果密钥

是否可以在按下某个键时启动计时器,然后在松开该键时,打印该键按了多长时间而没有
time.sleep()
?如果是这样,是否可以同时使用多个键执行此操作,并打印每个键按下的时间?例如:如果我按住“w”10秒,然后同时按住“d”5秒(同时按住w),我可以计算每个键按下的时间,然后将计数的时间放入列表或元组中,以便稍后使用数字吗?

对于计时器,要记住的主要一点是,当按下一个键时,该键会重复并重新触发“按键按下”事件。要存储每个键的开始时间,可以使用字典。在key down事件中,检查字典中的密钥,如果密钥不在字典中,则设置密钥时间。在向上键事件中,打印时差并从字典中删除键

以下是更新的代码:

keys_pressed=[]    
def keytracker():

 def on_press(key):
     global start,stop
     start=time.time()
     print(key)
     keys_pressed.append('t')
 def on_release(key):
     stop = time.time()
     print(stop-start)
     if key==Key.esc:
         return False
 with Listener(on_press=on_press,on_release=on_release) as listener:
     listener.join()
from pynput.keyboard import Key, Listener
import time

keys_pressed={}  # dictionary of keys currently pressed

def on_press(key): # gets re-called a key repeats
     if key not in keys_pressed:  # if not repeat event
         keys_pressed[key] = time.time() # add key and start time
         
def on_release(key):
     print (key, time.time() - keys_pressed[key])  # time pressed
     del keys_pressed[key] # remove key from active list
     if key==Key.esc:
         return False
         
with Listener(on_press=on_press,on_release=on_release) as listener:
     listener.join()