我是一个编程新手,正在尝试理解stdin、stdout和stderr的工作原理。据我所知,stdout和stderr是程序中可以将输出定向到的两个不同位置。我想我不明白为什么要有第二个“流”用于只包含错误信息的stderr?为什么不能将错误信息放在常规的stdout中?将错误信息放在stderr中允许我做什么(基本上,为什么stderr很有用)?
sys.stdout
,你也可以使用stdout = open(1, "w")
自己定义它。这不是Python提供的东西,而是你的Python实现运行的平台提供的。 - chepneropen(1, "w")
。例如,你不能在一个没有将fd
值公开为整数的语言中这样做。比如Java。但这只是假设,因为Python确实支持stderr。而我的真正观点是,一个不支持正确处理stderr的编程语言将无法生存。 - Stephen Ccat nosuchfile >stdout
比管道还要古老。 - tripleee