<p>我想你应该用线。为键创建线程,在每个线程中,您可以计算按键之间的时间间隔。为了得到更多的解释,请看我的视频来了解这个确切的答案。在</p>
<p><a href="https://www.youtube.com/watch?v=sDGYM8LeZh8" rel="nofollow noreferrer">https://www.youtube.com/watch?v=sDGYM8LeZh8</a></p>
<p>参见以下代码:</p>
<pre><code>import keyboard # keyboard library
import string # string for capturing keyboard key codes
import time # for capturing time
from threading import * # threads for keypresses
# get the keys
keys = list(string.ascii_lowercase)
# key listener
def listen(key):
while True:
global timeda # global variable for storing time for 1st keypress
global newda # global variable for storing time for next keypress
keyboard.wait(key) # when key is presses
# check if variables are defined
try:
timeda
newda
# this will run for the first keypress only so assign initial time to variable
except NameError:
timeda = time.time()
newda = time.time()
print("First key is pressed at "+str(round(newda,2)))
print('\n==========\n')
# for all keypresses except for the first will record time here
else:
newda = time.time() # assign time for next keypressed
newtime = newda - timeda # get difference between two keys presses
# just to test time of first keypress
print("Previous keypress was at "+str(round(timeda,2)))
# just to test time of next keypress
print("Current keypress is at "+ str(round(newda,2)))
# convert time into seconds
newtime = newtime % 60
print("Difference between two keypresses is "+str(round(newtime,2)))
print('\n==========\n') # need some space for printing difference
timeda = time.time()
# creating threads for keys and assigning event and args
threads = [Thread(target=listen, kwargs={'key':key}) for key in keys]
# calling each thread
for thread in threads:
thread.start()
# thats it
</code></pre>