все Python 3statфункция
stat.S_ISFIFO()
тип файла
Проверяет по st_mode, что объект — канал (pipe): именованный FIFO или безымянный из os.pipe().
Синтаксис
stat.S_ISFIFO(os.fstat(fd).st_mode)
Отвечает на вопрос «мне на вход подали вывод другой программы?»: при `cmd | python x.py` S_ISFIFO(os.fstat(0).st_mode) истинна. Канал нельзя перематывать: seek() и повторное чтение не работают, а чтение блокируется, пока пишущая сторона не закроется, — поэтому код, рассчитанный на обычный файл, с каналом зависает или падает.
Примеры
import os, stat
r, w = os.pipe()
print(stat.S_ISFIFO(os.fstat(r).st_mode)) # → True
os.close(r)
os.close(w)
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности