2013-03-01 5 views
15

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

myprogram <myinput.in> myoutput.out 

、どのように私は、標準出力と標準入力としてmyinput.inmyoutput.outの内容を使用してmyprogramを実行するのですか?

答えて

24

次は動作するはずです:

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

これは私が必要とするものの近くにあります。エラーが発生した場合、どのように検出するのですか? –

+0

心配しないでください。 stderr = subprocess.PIPEの場合、stderr:printエラーの場合 –

+0

'myoutput = open( 'myoutput.out'。 'w')'パラメータは '、'、 '.'で区切られていなければなりません。 – flagg19

-5

は、サブプロセスでファイルを開きます。これはブロッキングコールです。ファイルが開いているまで、制御は次の行には行かない。

ss=subprocess.Popen(FileName,shell=True) 
ss.communicate() 
関連する問題