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()
添加回答
舉報