Получить ошибку, выданную выполнением командной строки с использованием подпроцесса python - PullRequest
1 голос
/ 23 января 2020

Я пытаюсь получить ошибку (код выхода), возникающую при выполнении любой командной строки в самом скрипте python. Я использую подпроцесс для этого. Когда я выполняю какие-то неправильные команды, он выдает ошибку в терминале, как обычно, но затем останавливает выполнение файла python, и я не могу получить ошибку хранилища.

Посмотрите на код. Предполагается, что p_status хранит код выхода. Но перед печатью он останавливает скрипт после выдачи ошибки в терминале.

process = subprocess.Popen([<command>], stdout = subprocess.PIPE)
output = process.communicate()
p_status = process.wait()
print(p_status)

Я пробовал разные решения и перепробовал все, но не смог получить требуемый результат.

1 Ответ

0 голосов
/ 23 января 2020

Эта проблема решена с помощью следующего кода:

try:
    subprocess.Popen([<command>], stdout = subprocess.PIPE)
except OSError as error:
    print(error.errno) #for exit code

PS - credits @ karolch

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