问题描述
我正在尝试获取每次按空格键之间的时间,并将其输出到文本文件,这样它将显示每个延迟的可运行日志。我对其进行了测试,它可以运行,但是文本文件中没有任何内容。这是我的代码:
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)来调试代码,以更好地理解代码无法按照您希望的方式运行的点。