Python Glossary English

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

stat.S_ISDIR()

тип файла

Проверяет по числу st_mode из os.stat(), что объект — каталог. Принимает режим, а не путь.

Синтаксис

stat.S_ISDIR(os.stat(path).st_mode)

Частая ошибка — передать путь: stat.S_ISDIR('data') падает с TypeError, нужен os.stat(путь).st_mode. Удобно, когда о файле нужно узнать несколько вещей: один вызов os.stat() и несколько S_IS*-проверок вместо череды os.path.isdir()/isfile(), каждая из которых заново ходит в файловую систему. os.stat() идёт по символическим ссылкам, так что ссылка на каталог тоже даст True.

Примеры

import os, stat
os.mkdir('data')
open('notes.txt', 'w').close()
for name in ('data', 'notes.txt'):
    mode = os.stat(name).st_mode
    print(name, stat.S_ISDIR(mode))  # → data True / notes.txt False
import stat
try:
    stat.S_ISDIR('data')
except TypeError as e:
    print(type(e).__name__)  # → TypeError — нужен st_mode, а не путь

См. также

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