web-dev-qa-db-ja.com

サブプロセスを使用して戻り値を取得する

スクリプトの戻り値で変数を定義できるようにしたい。これは私が現在持っているものです:

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

SCRIPTの戻り値を確認しましたが、この変数を設定すると、常に0が返されます( http://docs.python.org/library/subprocess.html#subprocess.call )。このスクリプトをどのように実行し、戻り値をキャプチャして変数として保存しますか?

19
David542

subprocess.check_output() の代わりに subprocess.call() を使用します。

25
user849425

scriptが値を返す場合は、 subprocess.check_output() を使用します。

_subprocess.check_output([SCRIPT, "-d", date], Shell=True).
_

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

6
Makoto

subprocess.callはすでにプロセスの戻り値を返します。常に0が表示される場合は、SCRIPTを確認して、期待した値が返されていることを確認する必要があります。

再確認するには、シェルでSCRIPTを実行し、$?を使用して戻りコードを取得することもできます。

3
jcollado