如何通过管道调用或直接调用python脚本来查明?

时间:2013-10-22 15:47:17

标签: python pipe

我的python程序都接受来自命令行参数(sys.argv[1])和管道(sys.stdin)的主输入。

但它需要额外的参数,当主输入不存在时,这些参数会改变它们在sys.argv列表中的位置。

如何确定脚本是否被直接调用

myscript.py "input" "add_param"

或通过管道

echo "input" | myscript.py "add_param"

仅检查参数的数量是不够的。还有更多(可选)参数和 我还想为缺少的参数提供正确的错误消息。

1 个答案:

答案 0 :(得分:3)

您可以使用sys.stdin.isatty()

如果使用管道(|)执行脚本,则返回False。

>>> sys.stdin.isatty()
True