2012-01-27 10 views
11

スクリプトの戻り値で変数を定義できるようにします。これは私が現在持っているものです:私がしようとすると、この変数を設定するとサブプロセスを使用して戻り値を取得する

sum_total_earnings_usd = subprocess.call([SCRIPT, "-d", date]) 

私は、スクリプトの戻り値をチェックして、しかし、それは常に0(http://docs.python.org/library/subprocess.html#subprocess.call)を返します。このスクリプトを実行して戻り値を変数として格納するにはどうすればよいでしょうか?代わりにsubprocess.call()

答えて

19

使用subprocess.check_output()はすでにプロセスの戻り値を返します。 0が常に得られる場合は、SCRIPTを確認して、期待どおりの値が返されていることを確認する必要があります。

ダブルチェックするには、SCRIPTをシェルで実行し、$?を使用してリターンコードを取得することができます。

+0

ありがとうございます。 'subprocess.check_output()'はコマンドを実行し、戻り値を返します。 – David542

+0

出力に値をSTDOUTに書き出し、 'check_output()'を使用して値を取得したい場合は、それ以外の場合は、プロセス終了ステータスがすでに返されていることを確認してください。 –

6

あなたスクリプトが値を返している場合、あなたはsubprocess.check_output()を使いたいでしょう:

subprocess.check_output([SCRIPT, "-d", date], shell=True). 

subprocess.check_call()は、スクリプトから、最終的な戻り値を取得し、0は、一般的に「正常に完了したスクリプト」を意味します。

関連する問題