【发布时间】:2013-06-06 07:49:21
【问题描述】:
我进行了基本的尽职调查,但在任何地方都找不到一个好的答案。
我想调用 subprocess.Popen,当控制流被中断时它们仍然会引发 Python 异常,但我想同时重定向 stderr。
该用例用于不应输出警告但其内部逻辑仍想了解子进程问题的命令行客户端。
例如,这会静默重定向所有错误:
subprocess.Popen(command, stderr=subprocess.PIPE)
将 Python 模块作为带有内容的子进程调用:
raise(Exception("AVAST!"))
不会引发任何事情。
如果它重定向所有错误文本,但仍然会引发任何过早停止控制流的事情,那就太好了。我是否需要使用返回码并希望我调用的所有子流程都正确实现了这一点?
到目前为止我想到的最好的事情是手动解析重定向的错误,在我看来这是一个非常糟糕的实现。
有没有一种干净规范的方法来做到这一点?
【问题讨论】:
标签: python exception subprocess stderr