Maison >développement back-end >Tutoriel Python >Comment puis-je définir une limite de temps pour la fonction « raw_input » de Python ?

Comment puis-je définir une limite de temps pour la fonction « raw_input » de Python ?

DDD
DDDoriginal
2024-11-15 11:57:02347parcourir

How Can I Set a Time Limit on Python's `raw_input` Function?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn