Como detectar se o sys.stdout está conectado ao terminal ou não? [duplicado

Esta pergunta já tem uma resposta aqui:

Como reconhecer se um script está sendo executado em um tty? 1 resposta

Existe uma maneira de detectar sesys.stdout está conectado a um terminal do console ou não? Por exemplo, quero poder detectar se foo.py é executado via:

$ python foo.py  # user types this on console

O

$ python foo.py > output.txt # redirection
$ python foo.py | grep ....  # pipe

A razão pela qual faço esta pergunta é que quero garantir que minha exibição na barra de progresso ocorra apenas no caso anterior (console real

questionAnswers(1)

yourAnswerToTheQuestion