Python Glossary English

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

stat.S_IMODE()

биты режима

Вырезает из st_mode биты прав доступа (rwx, а также setuid, setgid и sticky), отбрасывая тип файла.

Синтаксис

stat.S_IMODE(mode)

Результат — обычное int, и print() показывает его десятичным (0o750 печатается как 488): для чтения оборачивайте в oct(). В отличие от `mode & 0o777` маска S_IMODE равна 0o7777 и сохраняет setuid/setgid/sticky. На Windows os.chmod() меняет только флаг «только чтение», поэтому права там всегда 0o666 или 0o444.

Примеры

import os, stat
open('run.sh', 'w').close()
os.chmod('run.sh', 0o750)
mode = os.stat('run.sh').st_mode
print(stat.S_IMODE(mode))  # → 488 — то же число, но десятичным (на Windows 438)
print(oct(stat.S_IMODE(mode)))  # → 0o750 (на Windows chmod меняет только флаг «только чтение»)
import stat
mode = 0o104755  # обычный файл с битом setuid
print(oct(mode & 0o777), oct(stat.S_IMODE(mode)))  # → 0o755 0o4755

См. также

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