Saisie clavier asynchrone avec gestion des délais d'attente
La tâche à accomplir est de solliciter la saisie de l'utilisateur tout en imposant un délai d'attente pour éviter une attente indéfinie. Bien que Google suggère un fil de discussion à cet effet, il peut ne pas donner de résultats satisfaisants.
Le défi vient du fait que la fonction de saisie du système ([raw_]input) accepte au plus un argument. Cependant, pour implémenter un timeout, il faut passer un paramètre timeout. Cela entraîne une TypeError.
Solution utilisant Select Poll
Une solution plus fiable consiste à utiliser l'appel système 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!")
Répartition
Cette approche offre une plus grande portabilité et efficacité dans la gestion de la saisie au clavier avec une fonctionnalité de délai d'attente.
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!