Python Popen l'envoi de processus sur stdin, la réception sur stdout
Je passe un exécutable sur la ligne de commande pour mon script python. Je fais quelques calculs et j'aimerais ensuite envoyer le résultat de ces calculs sur STDIN vers l'exécutable. Quand il a fini, je tiens à obtenir l'exécutable du résultat de STDOUT.
ciphertext = str(hex(C1))
exe = popen([sys.argv[1]], stdout=PIPE, stdin=PIPE)
result = exe.communicate(input=ciphertext)[0]
print(result)
Quand j'ai l'impression result
je ne reçois rien, pas à pas, une ligne vide. Je suis sûr que l'exécutable fonctionne avec les données que j'ai répété la même chose à l'aide de la " >' sur la ligne de commande avec le même auparavant résultat calculé.
Êtes-vous certain que vous avez testé que l'exécutable fonctionne même sans un retour chariot à la fin de l'entrée? ("echo" va ajouter une nouvelle ligne, "echo-n" aura pas.)
yep, fonctionne avec retour à la ligne ainsi
yep, fonctionne avec retour à la ligne ainsi
OriginalL'auteur Rupert Cobbe-Warburton | 2013-04-03
Vous devez vous connecter pour publier un commentaire.
Un exemple de travail
pour obtenir la même chose que “
execuable < params.file > output.file
”, ce faire:OriginalL'auteur Hal Canary