小编Dee*_*pak的帖子

python check_output失败,退出状态为1,但Popen适用于同一命令

命令框架以识别Xcode是否在Mac上运行: cmd = "ps -ax | grep -v grep | grep Xcode"

如果Xcode没有运行,那么上面的命令适用Popen于subprocess模块的方法,但是提出了一个CalledProcessErrorwith check_output方法.我试图stderr通过以下代码检查,但未能获得适当的信息来理解原因.

from subprocess import check_output, STDOUT, CalledProcessError

psCmd = "ps -ax | grep -v grep | grep Xcode"
o = None
try:
    o = check_output(psCmd, stderr=STDOUT, shell=True)
except CalledProcessError as ex:
    print 'Error:', ex, o
Run Code Online (Sandbox Code Playgroud)

异常消息如下:

Error: Command 'ps -ax | grep -v grep | grep Xcode' returned non-zero exit status 1 None

问题:为什么上面的命令适用于Popen,但是check_output失败了?

注意:如果Xcode正在运行,则命令适用于这两种方法.

python subprocess popen

5
推荐指数
1
解决办法
2万
查看次数

标签 统计

popen ×1

python ×1

subprocess ×1