擅长:python、mysql、java
<p>错误由shell显示,并打印到stderr。因为你没有重定向它的stderr,它只是直接进入你自己程序的stderr,然后进入你的终端</p>
<p>如果您不想使用这个或任何其他shell特性,那么最简单的解决方案就是不使用shell。传递一个参数列表而不是命令行,然后去掉这个<code>shell=True</code>,这个错误将变成一个普通的Python异常,您可以处理已有的代码</p>
<p>如果只是出于某种原因使用shell,则需要重定向其stderr。您可以传递<code>stderr=subprocess.STDOUT</code>使其与您已经捕获的标准输出合并,或者传递<code>subprocess.DEVNULL</code>使其忽略。<code>subprocess</code>模块文档很好地解释了所有的选项,所以请阅读它们,决定您想要的行为,然后这样做</p>