Python 3.9+osфункция
os.waitstatus_to_exitcode
os — процесс
Преобразует «сырой» статус завершения (от waitpid) в код возврата процесса (Python 3.9+).
Синтаксис
os.waitstatus_to_exitcode(status)
Для процесса, убитого сигналом, возвращает отрицательный номер сигнала: при SIGTERM это -15. Так же кодирует returncode модуль subprocess, поэтому их легко сравнивать. Для остановленного, а не завершённого процесса поднимает ValueError. Нужна, чтобы разобрать статус от os.system, os.wait или popen().close() без ручных макросов W*.
Примеры
import os
print(os.waitstatus_to_exitcode(0)) # → 0
print(os.waitstatus_to_exitcode(1 << 8)) # → 1
status = 3 << 8 # так кодируется потомок, завершившийся с кодом 3
print(os.waitstatus_to_exitcode(status)) # → 3
print(os.waitstatus_to_exitcode(9)) # → -9 — потомок убит сигналом 9 (SIGKILL), результат отрицательный
print(os.waitstatus_to_exitcode(127)) # → ValueError — процесс остановлен, а не завершён
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности