Описание тега subprocess
Модуль подпроцесса Python позволяет запускать новые процессы, подключаться к их каналам ввода / вывода / ошибок и получать их коды возврата. Используйте его для запуска команды оболочки или исполняемого файла на Python.
Модуль подпроцесса Python позволяет запускать новые процессы, подключаться к их каналам ввода / вывода / ошибок и получать их коды возврата.
Если вы хотите запускать код Python в отдельном процессе, рассмотрите возможность многопроцессорной обработки.
pexpect предпочтительнееsubprocess
в некоторых случаях.
Ожидание завершения команды и получение результата
- Вызов внешней команды в Python (
check_call()
) - Запуск команды оболочки и захват вывода (
check_output()
) - Python - как передать строку в subprocess.Popen (используя аргумент stdin)?(
.communicate()
) - Как использовать subprocess.Popen для соединения нескольких процессов по каналам?(
a | b | c
оболочка трубопровода) - [расширенный] Несколько каналов в подпроцессе (замена процесса bash:
a <(b) <(c)
)
Взаимодействие с подпроцессом во время его выполнения
- Чтение потокового ввода из subprocess.communicate() (
for line in process.stdout
) - Отображение вывода подпроцесса на стандартный вывод и его перенаправление
- Неблокирующее чтение в подпроцессе. PIPE в python
- Запустите команду и получите ее stdout, stderr отдельно почти в реальном времени, как в терминале (буферизация / параллелизм:
threading
,asyncio
,pty
,select
) - Взаимодействие на основе диалогов (несколько динамических запросов / ответов) (
pexpect
) - Как правильно взаимодействовать с процессом с помощью модуля подпроцесса (объяснение проблемы с блочной буферизацией)
Windows
Разное
- Использование модуля subprocess с таймаутом (
timeout=seconds
) - Как получить код выхода при использовании метода связи подпроцесса Python?(
.returncode
) - Как скрыть вывод подпроцесса в Python 2.7 (
stdout=DEVNULL
) - Как завершить подпроцесс python, запущенный с shell = True (
start_new_session=True
+os.killpg
) - Python - потоки нескольких подпроцессов bash?
Python: выполнить подпроцесс cat параллельно (
ThreadPool
илиasyncio
)/questions/9869929/pochemu-subprocesscall-ignoriruet-zvezdochku-peredayuschuyu-komandu-mv (
shell=True
)- Почему subprocess.Popen не работает, если args - это последовательность?(
shell=True
в POSIX)