【问题标题】:Check whether the process is being run as a pipe检查进程是否作为管道运行
【发布时间】:2011-05-14 23:36:39
【问题描述】:

我有一个小型 Python 实用程序,它只能作为管道运行。我希望它在独立运行时打印出帮助消息。进程如何知道它是否被用作管道。比较 sys.stdinsys.__stdin__ 不起作用。

【问题讨论】:

    标签: python process pipe stdio


    【解决方案1】:

    你可以使用isatty:

    if sys.stdin.isatty():
    

    如果标准输入是 tty,它将是 True,这大致意味着它被直接使用,在管道之外。

    【讨论】:

    • 反之亦然if sys.stdout.isatty()
    • 提示:如果你在 CI 环境 ala travis、jenkins 或 gitlab-ci 中启动 python,可能sys.stdin.isatty() 始终是False
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-26
    • 2011-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-06
    • 2015-04-24
    相关资源
    最近更新 更多