【发布时间】:2022-12-14 03:17:49
【问题描述】:
Python 的 subprocess API 的一个标准功能是使用关键字参数组合 STDERR 和 STDOUT
stderr = subprocess.STDOUT
但目前我需要相反的方法:将命令的 STDOUT 重定向到 STDERR。现在我正在使用subprocess.getoutput 或subprocess.check_output 手动执行此操作并打印结果,但是是否有更简洁的选项?
【问题讨论】:
-
只是好奇,你为什么要那样做管道?对我来说,如果你像你提到的那样将
STDERR传递给STDOUT,结果似乎是完全一样的。 -
@Tzane 如果它在终端中运行,结果将是相同的,但如果它是管道的一部分,或者如果它来自 cron 之类的东西,则结果将不同。例如,如果您有一个程序运行您的脚本并忽略 stdout,但如果有任何内容写入 stderr,则会通过电子邮件发送给您,您可能希望将所有输出重定向到 stderr。
标签: python subprocess io-redirection