sys.stdout
がコンソール端末に接続されているかどうかを検出する方法はありますか?たとえば、foo.pyが次の方法で実行されているかどうかを検出できるようにします。
$ python foo.py # user types this on console
OR
$ python foo.py > output.txt # redirection
$ python foo.py | grep .... # pipe
この質問をする理由は、プログレスバーの表示が前者の場合(実際のコンソール)でのみ行われるようにするためです。
if sys.stdout.isatty():
# You're running in a real terminal
else:
# You're being piped or redirected