Использование подпроцесса Python для вывода вывода в новом окне Xterm
Я пытаюсь вывести различную информацию в двух терминалах из того же сценария Python (как этот парень ). То, как мои исследования, похоже, указывают на то, чтобы открыть новое окно xterm, используя subprocess.Popen и запустить cat, чтобы отобразить stdin терминала в окне. Затем я напишу необходимую информацию в stdin подпроцесса следующим образом:
from subprocess import Popen, PIPE terminal = Popen(['xterm', '-e', 'cat'], stdin=PIPE) #Or cat > /dev/null terminal.stdin.write("Information".encode())
Затем строка «Информация» будет отображаться в новом xterm. Однако, это не так. Xterm ничего не отображает, и метод stdin.write просто возвращает длину строки, а затем переходит. Я не уверен, что есть неправильное понимание того, как работают подпроцессы и трубы, но если кто-то может мне помочь, это будет очень признательно. Благодарю.
- Как избежать Невозможно выделить ошибки памяти, вызванные использованием модуля подпроцесса
- Как открыть файл .exe с помощью класса в python?
- Как выполнить команду в скрипте Python?
- Ввод сбой после убийства менее (1) подпроцесса
- Автоматизация переключения с обычного пользователя на root с подпроцессом в python
Это не работает, потому что вы передаете материал самому xterm
, а не программе, запущенной внутри xterm
. Рассмотрим использование именованных каналов:
import os from subprocess import Popen, PIPE import time PIPE_PATH = "/tmp/my_pipe" if not os.path.exists(PIPE_PATH): os.mkfifo(PIPE_PATH) Popen(['xterm', '-e', 'tail -f %s' % PIPE_PATH]) for _ in range(5): with open(PIPE_PATH, "w") as p: p.write("Hello world!\n") time.sleep(1)
- Boost.python перегруженный конструктор для массива numpy и списка python
- Ошибка сегментации в Pandas read_csv
- Пытаться вызвать readline () в файловом объекте в python, но он приостанавливается
- Выполнение команды полностью независимо от скрипта
- python: проверка выполнения исполняемого файла на пути?
- Python избегает сиротских процессов
- Ошибка при вызове подпроцесса ls
- Запуск команды оболочки модуля из модуля подпроцесса python
- Захват вывода консоли, который не записывается в stdout, stderr?
- Связь с stdin через подпроцесс python
- Subprocess.Popen зависает с интерактивными программами при вызове изнутри Django