Python Glossary English

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