Python Glossary English

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

subprocess.check_output()

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

Запускает команду и возвращает её stdout как bytes (или str при text=True). При ненулевом коде возврата бросает CalledProcessError.

Синтаксис

subprocess.check_output(args, *, text=False, stderr=None, timeout=None, ...)

Захватывается только stdout — stderr по умолчанию уходит прямо в консоль родителя, поэтому текст ошибки легко потерять; ловите CalledProcessError и смотрите e.returncode и e.output либо передавайте stderr=subprocess.STDOUT. По сути это тонкая обёртка над subprocess.run(..., check=True, stdout=PIPE), оставшаяся со времён до Python 3.5: в новом коде документация советует run(). Без text=True вернутся bytes, и сравнение результата с обычной строкой молча даст False.

Примеры

import subprocess
out = subprocess.check_output(['python3', '--version'], text=True)
print(out)  # Python 3.x.y
try:
    subprocess.check_output(['false'])  # команда, возвращающая 1
except subprocess.CalledProcessError as e:
    print('код возврата:', e.returncode)

См. также

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

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