raw_input en python sans appuyer sur enter
Je suis en utilisant raw_input
en Python pour interagir avec l'utilisateur dans le shell.
c = raw_input('Press s or n to continue:')
if c.upper() == 'S':
print 'YES'
Il fonctionne comme prévu, mais l'utilisateur doit appuyer sur entrer dans le shell après avoir appuyé sur 's'. Est-il un moyen pour accomplir ce dont j'ai besoin à partir d'une entrée de l'utilisateur sans avoir besoin d'appuyer sur entrer dans le shell? Je suis à l'aide d' *nixes machines.
source d'informationauteur Somebody still uses you MS-DOS
Vous devez vous connecter pour publier un commentaire.
Sous Windows, vous avez besoin de la
msvcrt
module, en particulier, il semble de la façon dont vous décrivez votre problème, la fonction msvcrt.getch:(etc -- voir les docs que j'ai juste fait). Pour Unix, voir, par exemple, cette recette un moyen simple pour construire un semblable
getch
fonction (voir aussi plusieurs alternatives &c dans le fil de commentaires de la recette).Python n'a pas de fournir une solution multiplateforme hors de la boîte.
Si vous êtes sur Windows, vous pouvez essayer de msvcrt avec:
Au lieu de la
msvcrt
module vous pouvez également utiliser WConio:malédictions peut le faire ainsi :
Pour obtenir un seul caractère, j'ai utilisé getchmais je ne sais pas si il fonctionne sur Windows.
Sur une note de côté, msvcrt.kbhit() renvoie une valeur booléenne déterminant si une touche du clavier est actuellement d'être pressé.
Donc, si vous êtes de faire un jeu ou quelque chose et veulent les touches utilisées pour faire des choses, mais ne pas arrêter complètement le jeu, vous pouvez utiliser kbhit() à l'intérieur d'une instruction if pour vérifier que la clé est seulement récupéré si l'utilisateur veut réellement faire quelque chose.
Un exemple en Python 3: