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

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

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

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

3 ответа

Решение

Использование subprocess.check_output() вместо subprocess.call(),

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

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

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

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

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

Другие вопросы по тегам