如何使用 python 中的 pynput 输出每次按下空格键之间的时间
How to output the time between each press of the spacebar with pynput in python
我试图获取每次按下空格键之间的时间并将其输出到文本文件,以便它显示每次延迟的可运行日志。我对其进行了测试,它运行了,但是文本文件中什么也没有出现。这是我的代码:
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
请注意,我的编码还可以,但不是特别好。谢谢。
我想到的一个简单方法是使用 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
编辑:此答案仅用于帮助解决“文本文件中没有任何内容”部分。
file = open("script.txt", "r")
file.close()
据此,
- 您正在以阅读模式打开文件,因此无法写入
- 文件一打开就关闭了。没有交互,这两行代码对我来说似乎微不足道。
如果您不知道如何使用 python 读取/写入文件,我建议您先了解一下(网上有很多资源和解释)。
此外,我建议使用能够以可视化方式调试代码的编辑器(如 PyCharm),以便更好地理解代码未按预期方式运行的地方。
我试图获取每次按下空格键之间的时间并将其输出到文本文件,以便它显示每次延迟的可运行日志。我对其进行了测试,它运行了,但是文本文件中什么也没有出现。这是我的代码:
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
请注意,我的编码还可以,但不是特别好。谢谢。
我想到的一个简单方法是使用 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
编辑:此答案仅用于帮助解决“文本文件中没有任何内容”部分。
file = open("script.txt", "r") file.close()
据此,
- 您正在以阅读模式打开文件,因此无法写入
- 文件一打开就关闭了。没有交互,这两行代码对我来说似乎微不足道。
如果您不知道如何使用 python 读取/写入文件,我建议您先了解一下(网上有很多资源和解释)。
此外,我建议使用能够以可视化方式调试代码的编辑器(如 PyCharm),以便更好地理解代码未按预期方式运行的地方。