Как я могу открыть другой терминал Linux для вывода различных видов отладочной информации в Python? - PullRequest
3 голосов
/ 29 мая 2010

Мне нужно выводить различную информацию на разные экземпляры терминала, а не печатать их в одном и том же потоке вывода, скажем, std.err или std.out.

например: У меня есть 5 видов информации о том, что A-E должен отображаться в разных окнах терминала на одном и том же рабочем столе, выглядит как

[клемма 1] <- для отображения информации A </p>

[клемма 2] <- для отображения информации B </p>

[клемма 3] <- для отображения информации C </p>

[клемма 4] <- для отображения информации D </p>

[клемма 5] <- для отображения информации E </p>

Я знаю, что могу выводить их в разные файлы, а затем открывать терминалы, читая файл в цикле, но я хочу, чтобы программа python могла открывать терминал самой программой и печатать на них напрямую, когда это необходимо.

Возможно ли это?

Спасибо!

KC

[править] лучшее решение для этого случая - использовать SOCKET в качестве IPC. Я думаю, что если ресурс не имеет значения, он будет иметь наилучшую совместимую возможность - режим клиент-сервер. и труба / подпроцесс также будут полезными решениями под той же платформой

Ответы [ 2 ]

3 голосов
/ 29 мая 2010

Откройте канал, затем разветвите терминал, выполняющий cat чтение с конца чтения канала, и запишите в конец записи канала.

1 голос
/ 29 мая 2010

Используя модуль подпроцесс , просто запустите несколько экземпляров любой терминальной программы, которая вам нравится, каждый из которых запускает "cat", используя subprocess.Popen. Передайте команду stdin = subprocess.PIPE в дополнение к команде терминала в Popen. Затем вы можете просто написать в атрибут терминала каждого терминала.

Что-то вроде (не проверено!):

import subprocess
p = subprocess.Popen('xterm -e "cat > /dev/null"', stdin=subprocess.PIPE)
p.stdin.write("Hello World!")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...