Je commence un projet Python dans lequel la redirection de stdin est nécessaire, en utilisant un code similaire à ci-dessous:Comment afficher le stdin redirigé en Python?
import sys
import StringIO
s = StringIO.StringIO("Hello")
sys.stdin = s
a = raw_input("Type something: ")
sys.stdin = sys.__stdin__
print("You typed in: "+a)
Le problème est, après le code est exécuté, le message suivant apparaît:
Tapez quelque chose: Vous avez tapé: Bonjour
Existe-t-il un moyen de modifier mon code de sorte que ce qui suit est affiché à la place?
Type de quelque chose: Bonjour
Vous avez tapé dans: Bonjour
J'ai cherché haut et bas, mais ai trouvé pas encore de réponse. J'apprécierai vraiment si quelqu'un a une idée. Merci!
"La redirection stdin est nécessaire"? Vraiment? Cela semble être une situation impossible. Pourquoi ne pas remplacer 'raw_input' par un objet appelable qui fait ce que vous voulez? –
Je comprends que ce n'est pas une situation courante, mais c'est vraiment nécessaire. Le code ci-dessus est juste un exemple très simple; en réalité, je dois exécuter le code d'autres personnes qui demande des informations, donc je ne peux pas changer la façon dont ils codent leurs programmes. – dangmai
Vous ne changez pas leur code. Vous redéfinissez une fonction intégrée avec votre propre version, importez leur code, et exécutez leur code en utilisant votre version de l'intégré. –