Lors de l'interaction avec les utilisateurs dans un shell à l'aide de raw_input en Python, les utilisateurs doivent généralement appuyez sur la touche Entrée après avoir saisi leur réponse. Cela peut être gênant, surtout si vous souhaitez rationaliser le processus de saisie. Voici comment réaliser cela sur les machines *nixes :
Pour Windows, vous aurez besoin du module msvcrt, en particulier de la fonction msvcrt.getch(). Cette fonction lit une pression sur une touche et renvoie le caractère résultant sans le renvoyer à la console. Il bloque l'exécution si une pression sur une touche n'est pas déjà disponible mais n'attend pas Entrée.
import msvcrt c = msvcrt.getch() if c.upper() == 'S': print('YES')
Pour les systèmes basés sur Unix, pensez à utiliser la fonction getch à partir de la recette suivante :
def getch(): """ getch() -> key character Read a single keypress without echoing to the console. """ import tty import sys fd = sys.stdin.fileno() old_settings = tty.tcgetattr(fd) try: tty.setraw(fd) ch = sys.stdin.read(1) finally: tty.tcsetattr(fd, tty.TCSADRAIN, old_settings) return ch
Cette fonction désactive la mise en mémoire tampon du terminal, permettant une saisie par simple pression sur une seule touche sans attendre la touche Entrée.
En implémentant ces approches, vous pouvez recueillir les entrées des utilisateurs dans votre Scripts Python sans avoir besoin d'appuyer sur Entrée, améliorant ainsi l'expérience utilisateur lors des interactions shell.
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!