все Python 3statфункция
stat.S_ISREG()
тип файла
Проверяет по st_mode, что объект — обычный файл, а не каталог, устройство, канал или сокет.
Синтаксис
stat.S_ISREG(os.stat(path).st_mode)
«Не каталог» не значит «обычный файл»: os.devnull, именованный канал или сокет тоже не каталоги, но S_ISREG для них даёт False — а попытка читать канал как файл может зависнуть. os.path.isfile() устроен ровно так же, только сам делает os.stat() и молча отвечает False для несуществующего пути, тогда как os.stat() поднимет FileNotFoundError.
Примеры
import os, stat
with open('a.txt', 'w') as f:
f.write('hi')
print(stat.S_ISREG(os.stat('a.txt').st_mode)) # → True
print(stat.S_ISREG(os.stat(os.devnull).st_mode)) # → False — это устройство, а не файл
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности