Obtenir une saisie d'un seul caractère multiplateforme
La lecture d'un seul caractère à partir de la saisie de l'utilisateur est utile dans divers scénarios. Pour y parvenir, vous pouvez utiliser la solution multiplateforme suivante :
Le site ActiveState Recipes propose une recette complète qui cible différents systèmes d'exploitation :
Windows :
Linux et OSX :
L'extrait de code fourni illustre cette implémentation :
class _Getch: def __init__(self): try: self.impl = _GetchWindows() except ImportError: self.impl = _GetchUnix() def __call__(self): return self.impl() class _GetchUnix: def __init__(self): import tty, sys def __call__(self): import sys, tty, termios fd = sys.stdin.fileno() old_settings = termios.tcgetattr(fd) try: tty.setraw(sys.stdin.fileno()) ch = sys.stdin.read(1) finally: termios.tcsetattr(fd, termios.TCSADRAIN, old_settings) return ch class _GetchWindows: def __init__(self): import msvcrt def __call__(self): import msvcrt return msvcrt.getch() getch = _Getch()
Appeler simplement getch() vous obtiendra un seul caractère sans aucune mise en mémoire tampon ni écho vers le terminal.
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!