0

Python からプログラムを実行し、その終了ステータスに基づいて出力を出力しようとしています。以下のコードは、出力でシェルを開くのではなく、vim 画面に直接出力しています (めちゃくちゃです)。

ここに画像の説明を入力

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 に答える