Получить возвращаемое значение с помощью подпроцесса
Я хочу иметь возможность определить переменную по возвращаемому значению скрипта. Вот что у меня сейчас есть:
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
в оболочке и использовать $?
чтобы получить код возврата.