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