Ответ 1
Используйте subprocess.check_output()
вместо subprocess.call()
Я хочу иметь возможность определять переменную по возвращаемому значению script. Это то, что я сейчас имею:
sum_total_earnings_usd = subprocess.call([SCRIPT, "-d", date])
Я проверил возвращаемое значение SCRIPT, однако, когда я пытаюсь установить эту переменную, он всегда возвращает 0 (http://docs.python.org/library/subprocess.html#subprocess.call). Как я могу запустить этот script и захватить возвращаемое значение для хранения в виде переменной?
Используйте subprocess.check_output()
вместо subprocess.call()
Если ваш script возвращает значение, вы хотите использовать subprocess.check_output()
:
subprocess.check_output([SCRIPT, "-d", date], shell=True).
subprocess.check_call()
получает окончательное значение возврата из script, а 0 обычно означает, что "script успешно завершен".
subprocess.call
уже возвращает возвращаемое значение процесса. Если вы всегда получаете 0
, вам нужно просмотреть SCRIPT
, чтобы убедиться, что он возвращает ожидаемое значение.
Для двойной проверки вы также можете выполнить SCRIPT
в оболочке и использовать $?
для получения кода возврата.