我已经制作了一个程序来监视键盘并将所有按下的键写在文档中,但是要保存更改,必须将其关闭,如何在不关闭的情况下更新信息?我正在使用lib“ pynput”
我试图为打开和关闭文档创建一个循环,但是它并没有完全起作用。
#input the lib
from pynput import keyboard
file = open("test.txt", "a")
def on_press(key):
'''check pressed keys, AttributeError is for special keys'''
try:
file.write(key.char)
except AttributeError:
file.write('{0}'.format(key))
def on_release(key):
'''if that keys pressed go to a new line, if esc than stop a program and save changes'''
if key == keyboard.Key.space:
file.write("\n")
if key == keyboard.Key.enter:
file.write("\n")
if key == keyboard.Key.esc:
file.write("\n")
# Stop listener
return False
# Collect events until released
with keyboard.Listener(
on_press=on_press,
on_release=on_release) as listener:
listener.join()
file.close()
我希望它实时保存更改。
答案 0 :(得分:0)
对于特定用例,您可以使用file.flush()
。您可能需要跟进fd
根据文档,它将“ [...]强制将文件描述符为fsync()
的文件写入磁盘。在Unix上,这将调用本地MS _commit()
函数;在Windows上,则为{{ 1}}函数”
请就此问题查看官方documentation以及其他discussions的信息。我在StackOverflow上看到了这个问题,但是我选择响应,因为它在Python-3.x标签下,人们可以提供Python3特定的提示。
让我知道这是否可行,如果不可行,您的平台是什么