2 回答

TA贡献1111条经验 获得超0个赞
这是一个使用线程的示例。这允许 Python 运行两个(或更多)单独的线程,每个线程同时做不同的事情。(从技术上讲,它们实际上并不是同时发生的,而是交替发生的,但这在这种情况下并不重要)。
在一个线程中,您监听按键。在另一个线程中,您检查关键状态并做出适当反应。
import threading
from pynput import keyboard
class KeyCheckThread(threading.Thread):
def __init__(self):
super(KeyCheckThread, self).__init__()
self.doThing = 0
def on_press(self, key):
self.doThing = 1
def on_release(self, key):
self.doThing = 0
def run(self):
with keyboard.Listener(on_press=self.on_press, on_release=self.on_release) as listener:
listener.join()
listenerThread = KeyCheckThread()
listenerThread.start()
while(True):
if listenerThread.doThing == 1:
print("doThing")

TA贡献1884条经验 获得超4个赞
您已经考虑使用临时文件了吗?这是示例:
from pynput import keyboard
doThing = 0
def generate_variable(var):
with open("temp", "a") as temp:
temp.write(str(var))
def on_press(key):
generate_variable(1)
def on_release(key):
doThing = 0
def startListener():
listener = keyboard.Listener(
on_press=on_press,
on_release=on_release)
listener.join()
在第二个脚本上:
def truncate_file():
with open("temp","w"):
pass
while True:
doThing = len(open("temp", "r").read()) > 0
if doThing:
print('Thing')
truncate_file()
添加回答
举报