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