все Python 3macOS · Windowsosфункция
os.lchmod()
права доступа
Меняет права самой символической ссылки, не разыменовывая её; эквивалент os.chmod(path, mode, follow_symlinks=False). Есть на macOS/BSD и на Windows (3.13+), на Linux отсутствует.
Синтаксис
os.lchmod(path, mode)
На Linux её нет вовсе: hasattr(os, 'lchmod') ложно, а chmod(path, mode, follow_symlinks=False) поднимает NotImplementedError. Причина в том, что права самой ссылки в Linux не используются. Переносимый код должен проверять наличие функции или os.chmod in os.supports_follow_symlinks.
Примеры
import os, stat
print(hasattr(os, 'chmod')) # → True (os.chmod есть везде, os.lchmod — не везде)
print(callable(getattr(os, 'lchmod', os.chmod))) # → True (на Linux берём запасной os.chmod)
print(oct(stat.S_IMODE(0o100644))) # → 0o644 (mode задаётся восьмеричным числом)
print(stat.S_IMODE(0o100755) == 0o755) # → True
import os, stat
# os.lchmod(path, 0o644) ≡ os.chmod(path, 0o644, follow_symlinks=False)
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности