Python Glossary English

все Python 3Linux · macOSosфункция

os.WEXITSTATUS

os — разбор статуса (W*)

Извлекает из статуса код возврата нормально завершившегося процесса. Доступно на Unix.

Синтаксис

os.WEXITSTATUS(...)

Имеет смысл только после истинного WIFEXITED: для процесса, убитого сигналом, вернёт бессмысленное число. Даёт младшие 8 бит кода, поэтому sys.exit(256) у потомка превратится в 0. Проще и безопаснее os.waitstatus_to_exitcode, которая сама различает все случаи.

Примеры

# Python 3.9+
import os
status = os.system('exit 7')  # → ? только Unix: статус в формате wait(), здесь 1792 (7 << 8)
print(os.WEXITSTATUS(status))  # → 7 — код выхода команды
print(os.WIFEXITED(status))  # → True — лишь при этом WEXITSTATUS осмыслен
killed = os.system('kill -9 $$')  # → ? только Unix: оболочка убивает сама себя сигналом SIGKILL
print(os.WIFEXITED(killed), os.WTERMSIG(killed))  # → ? только Unix: False 9 — здесь нужен WTERMSIG, WEXITSTATUS вернёт бессмыслицу
print(os.waitstatus_to_exitcode(status))  # → 7 — современная однострочная замена паре WIFEXITED + WEXITSTATUS

См. также

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