Sous Windows :
import msvcrt
answer=msvcrt.getch()
J'ai un menu en Python. Cette partie était facile. J'utilise raw_input()
pour obtenir la sélection de l'utilisateur.
Le problème est que raw_input
(et l'entrée) obligent l'utilisateur à appuyer sur Entrée après avoir effectué une sélection. Existe-t-il un moyen de faire agir le programme immédiatement après une frappe ? Voici ce que j'ai jusqu'à présent :
import sys
print '''Menu
1) Say Foo
2) Say Bar'''
answer = raw_input('Make a selection> ')
if '1' in answer: print 'foo'
elif '2' in answer: print 'bar'
Ce serait formidable d'avoir quelque chose comme
print menu
while lastKey = '':
lastKey = check_for_recent_keystrokes()
if '1' in lastKey: #do stuff...
Sous Windows :
import msvcrt
answer=msvcrt.getch()
La raison pour laquelle msvcrt échoue dans IDLE est que IDLE n'accède pas à la bibliothèque qui exécute msvcrt. Alors que lorsque vous exécutez le programme en mode natif dans cmd.exe, cela fonctionne bien. Pour la même raison que votre programme explose sur les terminaux Mac et Linux.
Mais je suppose que si vous allez l'utiliser spécifiquement pour Windows, plus de puissance pour vous.