Открытие другого интерпретатора командной строки и ввод команд

Я использую эмулятор "spim" для эмуляции архитектуры mips. Это работает следующим образом: у меня сначала должен быть файл «filename.asm», затем я набираю «spim» в bash, чтобы открыть интерпретатор командной строки для spim, затем я могу использовать команды spim, такие как загрузка файла и его запуск, так далее..

Я пытаюсь написать скрипт python, который открывает интерпретатор командной строки spim и начинает вводить в нем команды spim. Это возможно?

Спасибо.


person Keeto    schedule 22.04.2012    source источник


Ответы (2)


Это будет зависеть от spim, с которым я не знаком, но если вы можете передать ему что-то, вы можете сделать то же самое в Python.

Ознакомьтесь с http://docs.python.org/library/subprocess.html.

Что-то вроде этого поможет вам начать:

proc = subprocess.Popen('spim',shell = True,stdin = subprocess.PIPE)
proc.stdin.write("Hello world")
person dfb    schedule 23.04.2012

person    schedule
comment
Вы можете сделать это более полезным для OP и будущих SO'ers, потратив время на объяснение того, что вы сделали. - person Jay Blanchard; 08.05.2014
comment
Этот код не решает проблему, если вам нужно итеративно связываться с процессом spim. Всегда создавайте новый экземпляр процесса. Когда вы отправляете команду шага 1, spim выполняет первую строку. Обходной путь - отправить шаг 1, шаг 2, шаг 3 и рассмотреть последнюю строку результата stdout. Кто-нибудь знает, как в python сохранить один открытый канал с другим процессом? (Мне нужно, чтобы spim работал как jit, выполняющий команду за командой, но внутри подпроцесса python.) - person Rogério Aparecido Gonçalves; 09.05.2014