Получить возвращаемое значение с помощью подпроцесса - PullRequest
16 голосов
/ 28 января 2012

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

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

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

Ответы [ 3 ]

23 голосов
/ 28 января 2012

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

6 голосов
/ 28 января 2012

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

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

subprocess.check_call() получает окончательное возвращаемое значение из сценария, а 0 обычно означает «сценарий завершен успешно».

3 голосов
/ 28 января 2012

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...