все Python 3subprocessфункция
subprocess.Popen()
запуск процессов
Низкоуровневый запуск процесса с ручным управлением. Позволяет читать stdout/stderr в реальном времени и писать в stdin.
Синтаксис
proc = subprocess.Popen(args, stdin=, stdout=, stderr=, text=False, ...)
proc.communicate(input=None)
proc.wait()
Popen не ждёт: вызов возвращает управление сразу, дочерний процесс живёт параллельно, и код возврата появится только после wait() или communicate(). Если и stdout, и stderr заведены на PIPE и вычитывать их вручную по очереди, буфер ОС рано или поздно переполнится и оба процесса встанут намертво — communicate() читает оба потока одновременно и потому безопасен. Когда нужен просто результат команды, а не диалог с ней, берите subprocess.run().
Примеры
import subprocess
proc = subprocess.Popen(
['python3', '-c', 'print("hello")'],
stdout=subprocess.PIPE, text=True
)
out, err = proc.communicate()
print(out) # hello
print(proc.returncode) # 0
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности