У меня есть небольшая утилита Python, которая должна запускаться только как конвейер. Я хочу, чтобы он распечатывал справочное сообщение, когда он работает автономно. Как процесс может узнать, используется ли он как канал. Сравнение sys.stdin и sys.__stdin__ не работает.
sys.stdin
sys.__stdin__
Вы можете использовать isatty:
isatty
if sys.stdin.isatty():
Будет True, если стандартным вводом является tty, что примерно означает, что он используется напрямую, вне канала.
True