Je suis très novice en programmation, je m'excuse d'avance si ma question est trop bête.Pourquoi ce code se comporte-t-il différemment dans Python3.1 que dans Python2.6?
#!/usr/bin/python2.6
import subprocess, time
p=subprocess.Popen(['cat'], stdin=subprocess.PIPE, stdout=subprocess.PIPE)
for i in 'abcd':
p.stdin.write(str.encode(i+'\n'))
output=p.stdout.readline()
print(output)
time.sleep(1)
exécution de ce code dans le python 2.6 imprime des lettres a, b, c, d, chaque ligne de sortie apparaît après une seconde. C'est un comportement attendu. Mais dans Python 3.1 l'exécution est bloquée à la ligne . Comment corriger ceci pour Python 3.1?
ce qui se passe exactement quand l'exécution est bloquée? Avez-vous une erreur que vous pourriez montrer? – Ben
pas d'erreurs, seulement des invites pour l'entrée; ce code a été exécuté dans la fenêtre du terminal –
En supposant qu'il pourrait y avoir des différences dans la mise en mémoire tampon; est-ce que quelque chose change si vous ajoutez un appel à p.stdin.flush après l'écriture? –