Получить возвращаемое значение с помощью подпроцесса

Я хочу иметь возможность определять переменную по возвращаемому значению script. Это то, что я сейчас имею:

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

Я проверил возвращаемое значение SCRIPT, однако, когда я пытаюсь установить эту переменную, он всегда возвращает 0 (http://docs.python.org/library/subprocess.html#subprocess.call). Как я могу запустить этот script и захватить возвращаемое значение для хранения в виде переменной?

Ответ 1

Используйте subprocess.check_output() вместо subprocess.call()

Ответ 2

Если ваш script возвращает значение, вы хотите использовать subprocess.check_output():

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

subprocess.check_call() получает окончательное значение возврата из script, а 0 обычно означает, что "script успешно завершен".

Ответ 3

subprocess.call уже возвращает возвращаемое значение процесса. Если вы всегда получаете 0, вам нужно просмотреть SCRIPT, чтобы убедиться, что он возвращает ожидаемое значение.

Для двойной проверки вы также можете выполнить SCRIPT в оболочке и использовать $? для получения кода возврата.