Eine der einfachsten Möglichkeiten, einen Tastaturhandler zu implementieren, der bei jedem Tastendruck eine Funktion aufruft (dies funktioniert sowohl unter Linux als auch unter Windows), ist die Verwendung einer BlockingQueue und Ein Thread, der die Taste beim Drücken in die Warteschlange stellt und die Warteschlange sie später in Ihrem Code abruft. Hier ist eine einfache Implementierung:
<code class="python">import queue import sys import threading # blocking q = queue.Queue() last_input = 0.0 def input_thread(q): global last_input while True: ch = sys.stdin.read(1) last_input = time.time() print("got key: '{}'".format(ch)) q.put(ch) if __name__ == '__main__': t = threading.Thread(target=input_thread, args=(q,)) t.daemon = True t.start() last_input_time = last_input while True: if not q.empty() and (time.time() - last_input) < 5: print("polling '{}' in the queue".format(q.get())) if time.time() - last_input_time > 5: print("nothing in the queue for a while") raise RuntimeError("no input")</code>
Das obige ist der detaillierte Inhalt vonWie implementiert man einen Tastaturhandler mithilfe einer BlockingQueue in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!