Python Glossary English

Python 3.5+subprocessпонятие

subprocess.CompletedProcess

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

Результат subprocess.run(): аргументы запуска, код возврата и перехваченные stdout и stderr завершившегося процесса.

Синтаксис

result = subprocess.run(args, ...)  # result.args, .returncode, .stdout, .stderr

Ненулевой returncode сам по себе ничего не возбуждает — проверьте его или вызовите check_returncode(), который поднимет CalledProcessError. stdout и stderr равны None, если вывод не перехватывали, и содержат bytes, если не передан text=True или encoding. Вывод почти всегда кончается переводом строки: сравнивать с ожидаемым стоит после .strip().

Примеры

import subprocess, sys
r = subprocess.run([sys.executable, '-c', 'print(42)'],
                   capture_output=True, text=True)
print(r.returncode)  # → 0
print(repr(r.stdout))  # → '42\n'
print(r.stderr == '')  # → True
import subprocess, sys
r = subprocess.run([sys.executable, '-c', 'import sys; sys.exit(1)'])
print(r.stdout)  # → None — вывод не перехватывали
try:
    r.check_returncode()
except subprocess.CalledProcessError as e:
    print(e.returncode)  # → 1

См. также

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

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