Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich in Python eine asynchrone Tastatureingabe mit einem Timeout erhalten?
Asynchrone Tastatureingabe mit Timeout-Behandlung
Die vorliegende Aufgabe besteht darin, Benutzereingaben anzufordern und gleichzeitig ein Timeout festzulegen, um unbegrenztes Warten zu verhindern. Obwohl Google hierfür einen Mailing-Thread vorschlägt, liefert dieser möglicherweise keine zufriedenstellenden Ergebnisse.
Die Herausforderung ergibt sich daraus, dass die Systemeingabefunktion ([raw_]input) höchstens ein Argument akzeptiert. Um jedoch ein Timeout zu implementieren, muss ein Timeout-Parameter übergeben werden. Dies führt zu einem TypeError.
Lösung mit Select Poll
Eine zuverlässigere Lösung ist die Verwendung des Systemaufrufs select.select():
import sys, select print("You have ten seconds to answer!") i, o, e = select.select([sys.stdin], [], [], 10) if (i): print("You said", sys.stdin.readline().strip()) else: print("You said nothing!")
Aufschlüsselung
Dieser Ansatz bietet eine größere Portabilität und Effizienz bei der Verarbeitung von Tastatureingaben mit Timeout-Funktionalität.
Das obige ist der detaillierte Inhalt vonWie kann ich in Python eine asynchrone Tastatureingabe mit einem Timeout erhalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!