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

Paw*_*dan 60 python shell

我希望我的脚本在交互式shell会话中以及在使用重定向的stdout运行时(例如,当管道传递给其他命令时)采取不同的行为.

我如何识别Python脚本中发生了哪两个?

现有程序中此类行为的示例:grep --color = auto在交互式shell中运行时突出显示匹配,但在通过管道输入其他内容时则不会.

jdi*_*zle 72

import os, sys
os.isatty(sys.stdout.fileno())
Run Code Online (Sandbox Code Playgroud)

要么

sys.stdout.isatty()
Run Code Online (Sandbox Code Playgroud)

  • 注意:这是对标准输出的测试。要检查标准输入,请相应地使用标准输入。 (2认同)