首页 文章

使用Python popen合并stdout和stderr并检测stderr是否为空

提问于
浏览
0

我想用popen运行一个子进程,它可以向stdout和stderr发送消息,但是这个子进程将继续沿着它的快乐方式,尽管写入stderr .

我想将stdout和stderr一起流,所以我按照它发生的确切顺序得到输出(或者我在技术上刷新了) . 然后,我想记录完整的结果集 . 但我也想独立知道stderr是否为空 . 如果不是,我将抛出异常 .

我很清楚如何将它们分开或合并在一起,但我怎么可能同时做到这两点呢?

1 回答

  • 0

    首先,我通过深入研究生成流的过程,在很大程度上解决了我的实际用例 . 我正在使用MySQL客户端,并发现命令行开关的正确组合将解决真正的目标 . 我会把它留下来,因为它完全针对那种情况 .

    然而,在我遇到这个问题之前,我确实找到了一个非常有用的方向 - 使用程序“Tee”和/或Python源代码 . 我没有尝试实现它,但似乎是一个方法可以用来同时收集stdout和stderr的输出,同时只将stdout发送到另一个文件描述符 . 如果两个输出不相同,那么这将告诉您是否使用了stderr .

    查看 :

    https://www.computerhope.com/unix/utee.htm

    而且:

    Python subprocess get children's output to file and terminal?

相关问题