Сообщить об ошибке.

Модуль subprocess в Python, запуск новых процессов.

Создание и запуск программ в новых процессах.

Запуск новых процессов - обычная задача на любом языке программирования и очень распространенная на языке высокого уровня, таком как Python.

Модуль subprocess позволяет создавать новые процессы, подключаться к их каналам ввода/вывода/ошибок и получать их коды возврата. Этот модуль предназначен для замены нескольких старых модулей и функций: os.system и os.spawn*.

Рекомендуемый подход к вызову подпроцессов заключается в использовании функции subprocess.run() для всех случаев использования, которые она может обработать. Для более сложных вариантов использования базовый интерфейс subprocess.Popen() можно использовать напрямую.

Функция subprocess.run() была добавлена ​​в Python-3.5. Если необходимо сохранить совместимость с устаревшими версиями API, то смотрите раздел "Устаревшие функции модуля subprocess".

Внимание! Пользователям и администраторам серверов, которые пишут приложения под linux, рекомендуется обратить внимание на сторонний модуль sh. Модуль sh - это удобная, простая в использовании и полноценная замена встроенного модуля subprocess.


Функция run() модуля subprocess в Python.

Функция run() модуля subprocess запускает команду с аргументами, ждет завершения команды, а затем возвращает экземпляр CompletedProcess() с результатами работы.

Объект CompletedProcess модуля subprocess в Python.

Объект `CompletedProcess()` модуля `subprocess` возвращает значение из `subprocess.run()`, представляющее завершенный процесс.

Перенаправление вывода в модуля subprocess в Python.

В этом разделе представлены специальные значения, которые могут принимать аргументы `stdin`, `stdout` или `stderr` модуля `subprocess`.

Часто используемые параметры модуля subprocess в Python.

Для поддержки широкого спектра вариантов использования функций модуля принимают большое количество необязательных аргументов. Для большинства типичных случаев использования, многие из этих аргументов могут быть безопасно оставлены со значениями по умолчанию.

Класс Popen() модуля subprocess в Python.

Класс Popen() модуля subprocess выполняет дочернюю программу в новом процессе. В POSIX класс использует os.execvp() подобное поведение для выполнения дочерней программы. В Windows класс использует функцию Windows CreateProcess().

Объект Popen модуля subprocess в Python.

При вызове subprocess.Popen() возвращает объект Popen, который имеет методы, описанные ниже.

Класс STARTUPINFO() модуля subprocess в Python.

Класс `STARTUPINFO()` модуля `subprocess` используется в аргументе `startupinfo` при создании `subprocess.Popen()`, через который осуществляется частичная поддержка структуры Windows `STARTUPINFO`.

Исключения модуля subprocess в Python.

В этом разделе представлены исключения, специфичные для модуля `subprocess`.

Константы и флаги OS Windows модуля subprocess в Python.

Модуль `subprocess` предоставляет следующие константы, используемые в помощнике Windows.

Устаревшие функции модуля subprocess в Python.

До Python-3.5 эти три функции включали высокоуровневый API для модуля `subprocess`. Теперь вместо них можно использовать функцию `subprocess.run()`