0

我正在尝试从 python 运行程序并根据其退出状态打印输出。下面的代码直接输出到我的 vim 屏幕(弄乱它),而不是打开带有输出的 shell。

在此处输入图像描述

python << EOF
import subprocess
import vim

cmd = "BAD_COMMAND"
p = subprocess.Popen(cmd, shell=True)
retcode = p.poll()
if retcode > 0:
    output_of_error = p.communicate()[0]
    vim.command("!echo show errors here")

EOF
4

1 回答 1

1

您想将子流程重定向到管道:

p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)

communicate()然后将返回一个包含进程内容stdout的2 元组。stderr

于 2012-06-03T09:58:16.563 回答