如何确定是否将标准输入传递给Python脚本?

时间:2015-08-27 16:03:37

标签: python

如果某些程序在命令行上由它们自己执行,那么它们应该从标准输入接收输入(即sed "s/test/text/g")。 Python脚本如何确定它是否从标准输入传递数据,以便可以引发适当的错误以避免挂起此类输入?

1 个答案:

答案 0 :(得分:1)

怎么样:

import sys
if sys.__stdin__.isatty():
     print('Interactive')
else
     print('Non-Interactive')

产生以下输出:

C:\>python bobo.py
Interactive

C:\>echo "test" | python bobo.py
Non-Interactive

另见os.isatty()