76

I would like my script to act differently in an interactive shell session and when running with redirected stdout (for example when piped to some other command).

How do I recognize which of these two happen in a Python script?

Example of such behavior in existing program: grep --color=auto highlights matches when running in interactive shell, but doesn't when piped to something else.

Paweł Hajdan
  • 18,074
  • 9
  • 49
  • 65

1 Answers1

89
import os, sys
os.isatty(sys.stdout.fileno())

or

sys.stdout.isatty()
jdizzle
  • 4,078
  • 1
  • 30
  • 38