TGViewer
Python Заметки Python Заметки @pythonotes · 2.2K subscribers
Post #281 2.28K
Что-то вы гоните насчет "привычного вида формата 755 и 644". Я вот вообще не понял что это! 😳

Действительно, что означают цифры которые мы получили в прошлом посте?

Это кодировка, заключающая в себе режимы доступа к файлу.
Подробней можно почитать в статье про chmod.
Там можно увидеть альтернативное обозначение того же самого с помощью символов r w x, что значит чтение, запись, исполнение.

Чтобы преобразовать восьмеричное число в такое обозначение в Python есть готовая функция

>>> stat.filemode(0o755)
'?rwxr-xr-x'

Мы видим 3 группы по 3 символа, дающие 3 типа доступа для 3 типов юзеров.

А что за знак вопроса в начале?

Давайте передадим в эту функцию необрезанное значение от os.stat

>>> stat.filemode(os.stat(path).st_mode)
'drwxr-xr-x'

Это данные, которые мы безжалостно обрезали в прошлый раз😼
Первый символ обозначает тип объекта. Это может быть файл (-), директория (d) или симлинк (l).

Вот простая схема данной кодировки

[1][3][3][3]
│ │ │ │
│ │ │ └──> Others Permissions
│ │ └─────> Group Permissions
│ └────────> Owner Permissions
└───────────> File Type

(разверните экран если вы с телефона)

Если вы попробуете получить пермишены для симлинка то получите пермишены для файла

>>> path = '.venv/bin/python3'
>>> stat.filemode(os.stat(path).st_mode)
'-rwxr-xr-x'

Чтобы получить свойства именно симлинка, нужно это явно указать

>>> stat.filemode(os.stat(path, follow_symlinks=False).st_mode)
'lrwxrwxrwx'

#tricks #basic
Wikipedia chmod chmod (от англ. change mode) — команда для изменения прав доступа к файлам и каталогам, используемая в Unix-подобных операционных системах. Входит в стандарт POSIX, в Coreutils.
More from @pythonotes
  1. Sep 21, 2026­ WebAssembly это мощная технология позволяющая загружать практически любое приложение в б…
  2. Aug 17, 2026Не так давно столкнулся с API который в ответе с ошибкой присылал только статус-код. Без п…
  3. Jul 20, 2026У меня основная ОС это Linux. Но нередко требуется делать сборку клиента под Windows. Соби…
  4. Jul 13, 2026В прошлый раз был пример с понижением привелегий процесса. Проблема в том, что обратно под…
  5. Jul 6, 2026Модуль pwd может использоваться для считывания информации о пользователях из базы данных п…
  6. Jun 22, 2026Недавно я реализовал Multi Tenancy систему на FastAPI + SQLAlchemy и пересобрал её в небол…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →