Python Glossary English

все Python 3subprocessфункция

subprocess.call()

запуск процессов

Старый способ запустить команду и дождаться её: возвращает код возврата числом и не проверяет его.

Синтаксис

subprocess.call(args, *, stdin=None, stdout=None, stderr=None, shell=False, cwd=None, timeout=None)

Ошибку команды call не замечает: вернёт 1 или 2, и если результат никто не смотрит, сбой пройдёт тихо. Перехватить вывод через stdout=PIPE здесь нельзя — канал никто не читает, и при большом выводе процесс зависнет; для вывода есть run(capture_output=True). В новом коде call(...) равен run(...).returncode.

Примеры

import subprocess, sys
code = subprocess.call([sys.executable, '-c', 'import sys; sys.exit(3)'])
print(code)  # → 3
import subprocess, sys
rc = subprocess.call([sys.executable, '-c', 'print(42)'],
                     stdout=subprocess.DEVNULL)  # вывод подавлен
print(rc)  # → 0

См. также

Частые ошибки

Открыть в полном глоссарииdocs.python.orgСообщить о неточности