> For the complete documentation index, see [llms.txt](https://treasuremaster.gitbook.io/python-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://treasuremaster.gitbook.io/python-docs/moduli-standartnoi-biblioteki-1/parallelnoe-vypolnenie/subprocess.md).

# subprocess

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

* os.system
* os.spawn\*

Информацию о том, как можно использовать модуль **subprocess** для замены этих модулей и функций, можно найти в следующих разделах.

{% hint style="info" %}
Смотрите также:

[PEP 324](https://www.python.org/dev/peps/pep-0324/) - предложение по развитию Python, предложение модуля subprocess
{% endhint %}

### Использование модуля subprocess

Рекомендуемый подход к вызову субпроцессов - использовать функцию run () для всех возможных вариантов использования. Для более сложных случаев использования можно напрямую использовать базовый интерфейс [Popen](/python-docs/moduli-standartnoi-biblioteki-1/parallelnoe-vypolnenie/subprocess/subprocess.popen.md).

Функция run () была добавлена в Python 3.5; если вам нужно сохранить совместимость со старыми версиями, см. раздел Older high-level API.

* run ()
* CompletedProcess class
* DEVNULL
* [PIPE](/python-docs/moduli-standartnoi-biblioteki-1/parallelnoe-vypolnenie/subprocess/subprocess.pipe.md) - специальное значение для аргументов stdin, stdout, stderr класса Popen
* STDOUT
* SubprocessError exception
* TimeoutExpired exception
* CalledProcessError exception

#### Часто используемые аргументы

не заполнено...

#### Конструктор Popen

Создание базового процесса и управление им в этом модуле осуществляется классом **Popen**. Он предлагает большую гибкость, поэтому разработчики могут обрабатывать менее распространенные случаи, не охватываемые вспомогательными функциями.

* [Popen](/python-docs/moduli-standartnoi-biblioteki-1/parallelnoe-vypolnenie/subprocess/subprocess.popen.md) class - выполняет дочернюю программу в новом процессе

#### Исключения

не заполнено...

#### Вопросы безопасности

не заполнено...

#### Объекты Popen

Экземпляры класса [**Popen**](/python-docs/moduli-standartnoi-biblioteki-1/parallelnoe-vypolnenie/subprocess/subprocess.popen.md) имеют следующие методы:

* poll ()
* [wait ()](/python-docs/moduli-standartnoi-biblioteki-1/parallelnoe-vypolnenie/subprocess/popen.wait.md) - ожидает пока дочерний процесс завершится
* [communicate ()](/python-docs/moduli-standartnoi-biblioteki-1/parallelnoe-vypolnenie/subprocess/popen.communicate.md) - взаимодействие с процессом
* send\_signal ()
* terminate ()
* kill ()
* [args](/python-docs/moduli-standartnoi-biblioteki-1/parallelnoe-vypolnenie/subprocess/popen.args.md) - переданный в Popen аргумент ***args***
* [stdin](/python-docs/moduli-standartnoi-biblioteki-1/parallelnoe-vypolnenie/subprocess/popen.stdin.md) - записываемый объект потока, если аргумент `stdin = PIPE`
* [stdout](/python-docs/moduli-standartnoi-biblioteki-1/parallelnoe-vypolnenie/subprocess/popen.stdout.md) - считываемый объект потока, если аргумент `stdout = PIPE`
* [stderr](/python-docs/moduli-standartnoi-biblioteki-1/parallelnoe-vypolnenie/subprocess/popen.stderr.md) - считываемый объект потока, если аргумент `stderr = PIPE`
* [pid](/python-docs/moduli-standartnoi-biblioteki-1/parallelnoe-vypolnenie/subprocess/popen.pid.md) - идентификатор ID дочернего процесса
* [returncode](/python-docs/moduli-standartnoi-biblioteki-1/parallelnoe-vypolnenie/subprocess/popen.returncode.md) - код завершения дочернего процесса

#### Помощники Popen в Windows

* STARTUPINFO class

#### Константы Windows

Модуль **subprocess** предоставляет следующие константы:

* STD\_INPUT\_HANDLE
* не заполнено...

#### Старый высокоуровневый API

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

* [call ()](/python-docs/moduli-standartnoi-biblioteki-1/parallelnoe-vypolnenie/subprocess/subprocess.call.md) - запускает команду, переданную в *args*
* check\_call ()
* check\_output ()

#### Замена старых функций модуля subprocess

не заполнено...

#### Устаревшие функции вызова оболочки

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

* getstatusoutput ()
* getoutput ()

#### Примечания

не заполнено...
