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