如何识别脚本是否在tty上运行?

我希望我的脚本在交互式shell会话中执行不同的操作,并在redirectstdout(例如,通过pipe道连接到其他命令时)运行。

如何识别这两个脚本中的哪一个发生在Python脚本中?

现有程序中此类行为的示例:grep –color = auto在交互式shell中运行时突出显示匹配项,但不会在pipe理其他项时突出显示。

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

要么

 sys.stdout.isatty()