在tracerou中使用子进程时没有错误输出

2024-06-16 10:52:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图获取当traceroute失败时返回的错误消息。例如:

from subprocess import CalledProcessError, check_output

try: 
    output = check_output(["traceroute", "error"])
except CalledProcessError as error:
    output = error.output

print "error: {}".format(output)

输出:

^{pr2}$

我尝试过使用output = str(error.output),但输出为空。在执行上述代码时,会向终端打印一条错误消息,所以应该可以将其分配给一个变量,对吗?在


Tags: fromimportformat消息outputcheckas错误
1条回答
网友
1楼 · 发布于 2024-06-16 10:52:39

如所述:https://docs.python.org/2/library/subprocess.html#subprocess.check_output

To also capture standard error in the result, use stderr=subprocess.STDOUT

尝试:

import subprocess
from subprocess import CalledProcessError, check_output

try: 
    output = check_output(["traceroute", "error"], stderr=subprocess.STDOUT)
except CalledProcessError as error:
    output = error

print "error: {}".format(output.output)

输出:

^{pr2}$

相关问题 更多 >