Maison >développement back-end >Tutoriel Python >Comment puis-je recueillir les entrées des utilisateurs en Python sans avoir besoin de la touche Entrée ?

Comment puis-je recueillir les entrées des utilisateurs en Python sans avoir besoin de la touche Entrée ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-08 16:05:02291parcourir

How Can I Gather User Input in Python Without Requiring the Enter Key?

Collecte des entrées de l'utilisateur sans nécessiter d'appuyer sur la touche Entrée

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 :

Windows

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')

Unix

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!

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