Я пытаюсь получить вывод traceroute с помощью subroutine.check_output, но всегда есть строка «traceroute to twitter.com (104.244.42.193), макс. 64 перехода, пакеты по 52 байта», которая печатается в терминале, исключена из вывод в моем скрипте. Есть ли способ обойти это, все еще используя subroutine.check_output?
Использование subroutine.check_output для получения вывода traceroute
comment
У вас тоже есть свой код?
- person Fallenreaper   schedule 04.11.2016
Ответы (1)
Это потому, что эта строка печатается в стандартном потоке ошибок.
Чтобы объединить 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'
person
Jean-François Fabre
schedule
04.11.2016