gpt4 book ai didi

python - 何时使用 sys.stdout 而不是 sys.stderr?

转载 作者:太空宇宙 更新时间:2023-11-03 12:27:17 35 4
gpt4 key购买 nike

我的老板让我看一些旧代码,其中所有内容都被发送到 stderr。我知道 stderr 应该有警告和错误,但他们什么时候才真正应该转到 stdout?

此程序是一项服务。它发送到 stderr 的一些消息是:

if pid is None:
message = "pidfile {0} is not running. \n"
sys.stderr.write(message.format(self.pidfile))

所以这是一个输出,对吧?关于成功与否的消息应该发送到标准输出,因为它不是错误?

然后我得到了另一个异常(exception):

except OSError as err:
sys.stderr.write('fork #1 failed: {0}\n'.format(err))
sys.exit(1)

这是一个异常,所以它应该转到 stderr,因为它是一个错误?或者它应该转到 stdout,因为它是一条输出消息,只是说程序失败了?

我知道什么是 stdout 和 stderr --- 在提问之前我读了很多。我的问题是能够识别哪些消息应该发送到 stderr --- 只是 fatal error ,还是任何类型的错误消息?

这两个示例都是错误消息,但一个只是“程序未运行”。我在选择应将此类消息发送到何处时遇到问题。

最佳答案

fatal error 当然应该转到 stderr。正常输出应该转到标准输出。

信息性消息有一个灰色区域,但一般来说,如果它们会使输出不可用,则不应转到标准输出。人们通常会将 stdout 指向一个文件,将 stderr 指向终端或日志文件。

您需要决定哪种划分最合理。

关于python - 何时使用 sys.stdout 而不是 sys.stderr?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35461687/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com