2012-02-15 6 views
1

Transporterコマンドを実行しています。これは、何が起こっているのかのログをプロンプトに表示します。サブプロセスを使用してコマンドの印刷ステートメントを記録する

すべての印刷ステートメントをスクリプトと同じフォルダにある別のファイルtransporter_log.txtにリダイレクトするにはどうすればよいですか?何かのような -

log_file = open(PATH, 'w') 
subprocess.call(shlex.split("/usr/local//iTMSTransporter -m verify...") 
log_file.write(...) 

答えて

3

あなたはstdoutパラメータとしてファイルを指定することができます。

with open(PATH, 'wb') as log_file: 
    subprocess.check_call(cmd, stdout=log_file) 

cmdの出力はlog_fileに書き込まれます。

+0

'subprocess.call(cmd、stderr = log_file)'です。これは、printステートメントがstderr – David542

0

リダイレクトコマンド(in unix)の使用についてはどうですか?

your_python.py > /path/to/transporter_log.txt 
+0

これは多くのコマンドを含むスクリプトですが、この特定のコマンドでは、出力(つまり、生成するprint文)をリダイレクトする必要があります。 – David542