Python Glossary English

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