web-dev-qa-db-fra.com

Utilisation de fichiers comme stdin et stdout pour le sous-processus

Comment répliquer la commande batch suivante à l'aide du module de sous-processus python?

myprogram < myinput.in > myoutput.out

En d'autres termes, comment exécuter myprogram en utilisant le contenu de myinput.in comme entrée standard et myoutput.out comme sortie standard?

24
Nolander

Les éléments suivants devraient fonctionner:

myinput = open('myinput.in')
myoutput = open('myoutput.out', 'w')
p = subprocess.Popen('myprogram.exe', stdin=myinput, stdout=myoutput)
p.wait()
myoutput.flush()
36
Elmar Peise