使用subroutine.check_output获取traceroute的输出

时间:2016-11-04 20:36:02

标签: python subroutine traceroute

我试图使用subroutine.check_output获取traceroute的输出,但总是有一行" traceroute到twitter.com(104.244.42.193),最多64跳,52字节包"在我的脚本中从输出中排除了在终端中打印的内容。有什么方法可以解决这个问题,同时仍然使用subroutine.check_output?

1 个答案:

答案 0 :(得分:0)

那是因为这一行打印在标准错误流上。

要合并stdout和stderr:

p = subprocess.check_output(command,stderr=subprocess.STDOUT)

摘自help(subprocess.check_output)

  

要捕获结果中的标准错误,请使用stderr = STDOUT。

>>> check_output(["/bin/sh", "-c",
...               "ls -l non_existent_file ; exit 0"],
...              stderr=STDOUT)
b'ls: non_existent_file: No such file or directory\n'