Python Glossary English

Python 3.5+subprocessфункция

subprocess.run()

запуск процессов

Запускает команду, ждёт завершения и возвращает CompletedProcess. Основной способ вызова внешних программ в Python 3.5+.

Синтаксис

subprocess.run(args, *, capture_output=False, text=False, check=False, timeout=None, ...)

По умолчанию check=False, поэтому упавшая команда выглядит как успешный вызов — проверяйте result.returncode или ставьте check=True, иначе ошибка пройдёт незамеченной. Без capture_output=True вывод идёт напрямую в консоль, а result.stdout остаётся None. Аргументы передавайте списком: строка вместе с shell=True превращает любой пользовательский ввод в дыру для инъекции команд.

Примеры

import subprocess
# простой запуск
result = subprocess.run(['ls', '-la'], capture_output=True, text=True)
print(result.stdout)
import subprocess
# проверка кода возврата
subprocess.run(['python', '--version'], check=True)  # CalledProcessError при ошибке

См. также

Частые ошибки

Открыть в полном глоссарииdocs.python.orgСообщить о неточности