首页 > 解决方案 > 如何在python中使用pynput输出每次按下空格键之间的时间

问题描述

我正在尝试获取每次按下空格键之间的时间并将其输出到文本文件,以便它显示每个延迟的可运行日志。我对其进行了测试,它运行了,但是文本文件中没有出现任何内容。这是我的代码:

from pynput.keyboard import Key, Listener
from playsound import playsound
import time

def on_press(key):
    global key2
    key2 = key

with Listener(
        on_press=on_press) as listener:
    listener.join()

while True:
    done = False
    if key2 == "'s'":
        file = open("script.txt", "r")
        exec(file.read())
        file.close()
        playsound("beep.mp3")
        while done == False:
            time.sleep(0.01)
            timer += 0.01
            if key2 == "key.space":
                str = str + "\ntime.sleep(" + timer + ")"
                timer = 0
            if key2 == "'a'":
                str = str + "\ntime.sleep(" + timer + ")"
                timer = 0
                file = open("script.txt", "a")
                file.write(str)
                file.close()
                done = True
            if key2 == "'d'":
                timer = 0
                str = ""
                done = True

请注意,我擅长编码,但不是特别好。谢谢你。

标签: pythonpynput

解决方案


我想到的一种简单方法是使用time.time()

import time
start = time.time()
diff = time.time() - start # Difference between starting time and current time

这可能导致

...
while True:
  start = time.time()
  ...
    if key2 == "key.space":
      diff = time.time() - start

推荐阅读