Using files as stdin and stdout for subprocess

2019-03-12 04:16发布

问题:

How do I replicate the following batch command using python subprocess module?

myprogram < myinput.in > myoutput.out

In other words, how do I run myprogram using the contents of myinput.in as the standard input and myoutput.out as standard output?

回答1:

The following should work:

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