все Python 3statфункция
stat.S_ISCHR()
тип файла
Проверяет по st_mode, что объект — символьное устройство: терминал, /dev/null, /dev/random.
Синтаксис
stat.S_ISCHR(os.stat(path).st_mode)
Полезна, чтобы понять, откуда пришёл стандартный ввод: os.fstat(0).st_mode у терминала и у /dev/null — символьное устройство, у `prog | python x.py` — канал (S_ISFIFO), у `python x.py < data.txt` — обычный файл (S_ISREG). Отличить терминал от /dev/null она не может — для этого есть sys.stdin.isatty().
Примеры
import os, stat
print(stat.S_ISCHR(os.stat(os.devnull).st_mode)) # → True
open('a.txt', 'w').close()
print(stat.S_ISCHR(os.stat('a.txt').st_mode)) # → False
import os, stat
mode = os.fstat(0).st_mode # stdin
print(stat.S_ISCHR(mode), stat.S_ISFIFO(mode), stat.S_ISREG(mode)) # → ? зависит от того, откуда пришёл ввод
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности