Nolander
Nolander

Reputation: 301

Using files as stdin and stdout for subprocess

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?

Upvotes: 30

Views: 35317

Answers (1)

Elmar Peise
Elmar Peise

Reputation: 15413

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()

Upvotes: 47

Related Questions