Проверьте, выполняется ли процесс как канал - PullRequest
10 голосов
/ 24 ноября 2010

У меня есть небольшая утилита Python, которая должна запускаться только как конвейер. Я хочу, чтобы он распечатывал справочное сообщение, когда он работает автономно. Как процесс может узнать, используется ли он как канал. Сравнение sys.stdin и sys.__stdin__ не работает.

1 Ответ

13 голосов
/ 24 ноября 2010

Вы можете использовать isatty:

if sys.stdin.isatty():

Будет True, если стандартным вводом является tty, что примерно означает, что он используется напрямую, вне канала.

...