Re: Python3 - как распарсить вывод приложения в Python3 и Popen?
От: CaptainFlint Россия http://flint-inc.ru/
Дата: 19.08.20 18:25
Оценка:
Здравствуйте, Glestwid, Вы писали:

G>Процесс "netdump" появляется, но не в отдельном окне. Как его сделать запускаемым в отдельном окне и разобрать то, что netdump там понаписал ? Если что, Python запускается на Linux Slackware


Вывод программы идёт лишь в один поток (если забыть про stderr). И этот поток либо приходит в программу и анализируется, либо идёт в терминал, но не туда и сюда одновременно.
Чтобы и печатать, и анализировать, нужно считывать вывод построчно и самому же выводить его на экран. Но, естественно, выводиться это будет на экран того терминала, где запущен сам питоновский скрипт.

С отдельным окном вообще непонятный момент. Насколько я знаю, в линуксе нет такой штуки как автоматическое создание консольного окна для любой консольной программы, в отличие от винды. Если нужно запустить программу в новом окне, то это окно сначала кто-то должен создать, инициализировать там терминал, связать потоки ввода-вывода с нужной программой… Теоретически, наверное, можно запустить консольную оболочку и передать ей параметры, чтобы та внутри себя запустила нужную программу. Но, во-первых, консольных эмуляторов очень много разных, и наверняка не все из них умеют принимать такие аргументы. Во-вторых, в этом случае весь вывод программы получается и обрабатывается этой самой оболочкой, питоновскому же скрипту не достанется ни крошки. Можно извратиться, запустив программу через tee, чтобы её вывод дублировался в файл, и мониторить/читать уже этот файл. Но как по мне, выглядит такое решение очень криво…
Почему же, ё-моё, ты нигде не пишешь «ё»?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.