все 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Сообщить о неточности