web-dev-qa-db-ja.com

サブプロセスのstdinおよびstdoutとしてのファイルの使用

pythonサブプロセスモジュールを使用して次のバッチコマンドを複製するにはどうすればよいですか?

myprogram < myinput.in > myoutput.out

つまり、myinput.inの内容を標準入力として使用し、myoutput.outを標準出力として使用してmyprogramを実行するにはどうすればよいですか。

24
Nolander

以下はうまくいくはずです:

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