【问题标题】:Why is 'python -V' output as a standard error in Linux?为什么“python -V”在 Linux 中输出为标准错误?
【发布时间】:2021-05-26 08:31:20
【问题描述】:

例如:

python -V
Python 2.7.5


python -V 2>/dev/null
nothing

python -V 1>/dev/null
Python 2.7.5

当'python -V'的标准输出被重定向到/dev/null时,输出是'Python 2.7.5'。 当'python -V'的标准错误被重定向到/dev/null时,输出为空。

【问题讨论】:

  • 当你使用'2'将输出重定向到文件时,它只在发生错误时才会这样做,如果没有发生错误,你将什么都看不到

标签: python linux pipe


【解决方案1】:

我怀疑没有比“因为编写这部分代码的人认为这是个好主意”更好的答案。值得一提的是,在 Python 3 中,-V 输出转到标准输出。

(您可以争辩说这种类型的输出不是“正常”输出,因此应该转到 stderr。您也可以争辩说,一旦用户说 -V,它正常的输出,因此应该去标准输出。你可以争辩说,当程序是一个运行另一个程序的解释器时,标准输出/标准错误的区别变得相当混乱,它可以完全控制它的输出去向。)

【讨论】:

    猜你喜欢
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-09
    • 1970-01-01
    • 1970-01-01
    • 2011-09-04
    相关资源
    最近更新 更多