Heim > Artikel > Backend-Entwicklung > Wie kann ich ein Zeitlimit für die Funktion „raw_input“ von Python festlegen?
Zeitlimit für raw_input in Python
raw_input ist eine Python-Funktion, die zum Warten auf Benutzereingaben verwendet wird. Es bietet keine Möglichkeit, ein Zeitlimit anzugeben, was in bestimmten Szenarien wünschenswert sein könnte.
Lösung
Um ein Zeitlimit für raw_input festzulegen, gibt es einen Ansatz um die Funktion signal.alarm zu verwenden, die nach Ablauf der angegebenen Zeit ein SIGALRM-Signal an den Prozess sendet. Hier ist ein Codeausschnitt:
import signal def alarm_handler(signum, frame): raise KeyboardInterrupt def raw_input_with_timeout(prompt, timeout): signal.alarm(timeout) try: return input(prompt) except KeyboardInterrupt: return None finally: signal.alarm(0) # cancel the alarm
Dieser Code installiert einen Alarmhandler, der eine KeyboardInterrupt-Ausnahme auslöst, wenn das Zeitlimit erreicht ist, wodurch die raw_input-Funktion effektiv übersprungen wird.
Alternativ für Cross- Plattform- oder Windows-spezifische Lösungen, man kann threading.Timer oder poll msvcrt.kbhit in Windows verwenden, um eine ähnliche Funktionalität zu erreichen.
Das obige ist der detaillierte Inhalt vonWie kann ich ein Zeitlimit für die Funktion „raw_input“ von Python festlegen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!