subprocess

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

  • os.system

  • os.spawn*

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

Смотрите также:

PEP 324 - предложение по развитию Python, предложение модуля subprocess

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

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

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

  • run ()

  • CompletedProcess class

  • DEVNULL

  • PIPE - специальное значение для аргументов stdin, stdout, stderr класса Popen

  • STDOUT

  • SubprocessError exception

  • TimeoutExpired exception

  • CalledProcessError exception

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

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

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

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

  • Popen class - выполняет дочернюю программу в новом процессе

Исключения

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

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

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

Объекты Popen

Экземпляры класса Popen имеют следующие методы:

  • poll ()

  • wait () - ожидает пока дочерний процесс завершится

  • communicate () - взаимодействие с процессом

  • send_signal ()

  • terminate ()

  • kill ()

  • args - переданный в Popen аргумент args

  • stdin - записываемый объект потока, если аргумент stdin = PIPE

  • stdout - считываемый объект потока, если аргумент stdout = PIPE

  • stderr - считываемый объект потока, если аргумент stderr = PIPE

  • pid - идентификатор ID дочернего процесса

  • returncode - код завершения дочернего процесса

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

  • STARTUPINFO class

Константы Windows

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

  • STD_INPUT_HANDLE

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

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

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

  • call () - запускает команду, переданную в args

  • check_call ()

  • check_output ()

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

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

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

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

  • getstatusoutput ()

  • getoutput ()

Примечания

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

Last updated