Как отловить ошибку bash при запуске скрипта через python - PullRequest
0 голосов
/ 21 февраля 2020

Я пытаюсь запустить сценарий bash (или sh) через сценарий python, например:

import os
cmd="/bin/echo {1..200000}"
out=os.system(cmd)

Однако команда не запускается, и я получаю следующую ошибку :

/bin/echo: Argument list too long

Я хочу иметь возможность зафиксировать эту ошибку именно в моем скрипте python. try/except здесь не работает, так как это не ошибка python, поэтому я хочу знать, есть ли какой-нибудь другой способ это зафиксировать.

1 Ответ

4 голосов
/ 21 февраля 2020

Проблема в том, что ошибка не происходит в Python. Ошибка происходит в bash, который в этот момент выполняется как отдельный процесс. Взгляните на модуль Python «подпроцесс». Его сложнее настроить, чем os.system (), но он позволяет вам захватывать stdin и stdout и обрабатывать их после завершения процесса.

...