<分区>
Possible Duplicate:
Detect if stdin is a terminal or pipe in C/C++/Qt?
我想知道我的程序的输出是直接进入终端还是被重定向到管道或文件。
因为如果它进入终端,我想输出转义序列来制作彩色文本,但在文件或管道中不受欢迎。
我知道这是可能的,因为“ls”可以做到,有人知道怎么做吗?
<分区>
Possible Duplicate:
Detect if stdin is a terminal or pipe in C/C++/Qt?
我想知道我的程序的输出是直接进入终端还是被重定向到管道或文件。
因为如果它进入终端,我想输出转义序列来制作彩色文本,但在文件或管道中不受欢迎。
我知道这是可能的,因为“ls”可以做到,有人知道怎么做吗?
最佳答案
使用 os.isatty()
function在 stdout
流或您需要测试的任何其他文件的文件描述符上:
>>> import sys, os
>>> os.isatty(sys.stdout.fileno())
True
对于打开的文件(如 sys.stdout
流).fileno()
method返回必要的描述符。
关于python - 如何知道输出是否进入终端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13669381/