linux shell中的python脚本,用于检查命令行是否写入文件

时间:2017-07-04 13:55:35

标签: linux shell

我正在编写一个python脚本,将输出打印到屏幕(linux shell),然后我用颜色打印它。 有没有办法知道输出是否进入文件?

示例:

script.py parms

这给了我好的彩色输出

现在,如果我这样做:

script.py parms > output.txt

当我打开文件时,我看到奇怪的ASCII字符(颜色值),我试图在几个文本编辑器中打开它(kate,gedit)。

我想做类似的事情:

if goesIntoFile:
  print in black
else:
  print in color

我该怎么做?

1 个答案:

答案 0 :(得分:3)

您可以在stdout上使用isatty()来检查标准输出是tty(终端)设备还是文件。

检查此script.py

#!/usr/bin/env python
import sys
print sys.stdout.isatty()

运行时:

$ python script.py
True
$ python script.py | cat
False

另外,您可能需要检查一些为您处理此问题的颜色输出库,例如crayons使用上面的isatty方法。