Maison >développement back-end >Tutoriel Python >Comment puis-je définir une limite de temps pour la fonction « raw_input » de Python ?
Durée limite sur raw_input en Python
raw_input est une fonction Python utilisée pour attendre la saisie de l'utilisateur. Il ne fournit pas de moyen de spécifier une limite de temps, ce qui pourrait être souhaitable dans certains scénarios.
Solution
Pour définir une limite de temps sur raw_input, une approche consiste pour utiliser la fonction signal.alarm, qui envoie un signal SIGALRM au processus après l'expiration du délai spécifié. Voici un extrait de code :
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
Ce code installe un gestionnaire d'alarme qui déclenche une exception KeyboardInterrupt lorsque la limite de temps est atteinte, ce qui ignore effectivement la fonction raw_input.
Alternativement, pour les cross- plate-forme ou des solutions spécifiques à Windows, on peut utiliser threading.Timer ou interroger msvcrt.kbhit dans Windows pour obtenir des fonctionnalités similaires.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!