我想用popen运行一个子进程,它可以向stdout和stderr发送消息,但是这个子进程将继续沿着它的快乐方式,尽管写入stderr .
我想将stdout和stderr一起流,所以我按照它发生的确切顺序得到输出(或者我在技术上刷新了) . 然后,我想记录完整的结果集 . 但我也想独立知道stderr是否为空 . 如果不是,我将抛出异常 .
我很清楚如何将它们分开或合并在一起,但我怎么可能同时做到这两点呢?
首先,我通过深入研究生成流的过程,在很大程度上解决了我的实际用例 . 我正在使用MySQL客户端,并发现命令行开关的正确组合将解决真正的目标 . 我会把它留下来,因为它完全针对那种情况 .
然而,在我遇到这个问题之前,我确实找到了一个非常有用的方向 - 使用程序“Tee”和/或Python源代码 . 我没有尝试实现它,但似乎是一个方法可以用来同时收集stdout和stderr的输出,同时只将stdout发送到另一个文件描述符 . 如果两个输出不相同,那么这将告诉您是否使用了stderr .
查看 :
https://www.computerhope.com/unix/utee.htm
而且:
Python subprocess get children's output to file and terminal?
1 回答
首先,我通过深入研究生成流的过程,在很大程度上解决了我的实际用例 . 我正在使用MySQL客户端,并发现命令行开关的正确组合将解决真正的目标 . 我会把它留下来,因为它完全针对那种情况 .
然而,在我遇到这个问题之前,我确实找到了一个非常有用的方向 - 使用程序“Tee”和/或Python源代码 . 我没有尝试实现它,但似乎是一个方法可以用来同时收集stdout和stderr的输出,同时只将stdout发送到另一个文件描述符 . 如果两个输出不相同,那么这将告诉您是否使用了stderr .
查看 :
https://www.computerhope.com/unix/utee.htm
而且:
Python subprocess get children's output to file and terminal?