Python Glossary English

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

os.chmod

os — права и владелец

Меняет права доступа к файлу (режим). На Windows поддерживается лишь бит «только чтение».

Синтаксис

os.chmod(...)

Режим удобно писать в восьмеричной системе: 0o644, а не 644 — десятичное 644 даст совсем другие права. На Windows меняется только флаг «только чтение», остальные биты игнорируются. Для символических прав используйте константы stat, например stat.S_IRUSR | stat.S_IWUSR. Права — не всё: ACL и атрибуты файловой системы chmod не трогает.

Примеры

import os
path = 'demo_perms.txt'
open(path, 'w').close()  # → создаём временный файл для опытов
os.chmod(path, 0o644)  # → владелец читает и пишет, остальные только читают
print(oct(os.stat(path).st_mode & 0o777))  # → на Unix 0o644; на Windows 0o666 (биты группы и прочих не поддерживаются)
os.chmod(path, 0o444)  # → снимаем право записи: на Windows это единственный работающий эффект — атрибут «только чтение»; вернуть запись можно тем же os.chmod(path, 0o644)
os.chmod('нет-такого-файла', 0o644)  # → FileNotFoundError

См. также

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

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