Ответ 1
if sys.stdout.isatty():
# You're running in a real terminal
else:
# You're being piped or redirected
Есть ли способ определить, прикреплен ли sys.stdout
к консольному терминалу или нет? Например, я хочу, чтобы определить, выполняется ли foo.py через:
$ python foo.py # user types this on console
ИЛИ
$ 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