Как прочитать вывод терминала из сценария, чтобы передать его как переменную другому? - PullRequest
0 голосов
/ 03 апреля 2019

Я пытаюсь сделать 2 отдельных скрипта, взаимодействующих через один терминал, используя python3 .

Я пробовал это с использованием класса "подпроцесс", но я не могу сделать это. Моя проблема в том, что функция subprocess.getoutput () или call () всегда запускает вызываемый скрипт.

Я ожидаю, что функция read () в сценарии 2 получит печать из сценария 1 в переменную сценария 2.

Для ясности:

  1. Скрипт 1 запускает скрипт 2
  2. Скрипт 2 выводит определенные результаты, затем ждет инструкции
  3. Скрипт 1 читает вывод терминала для использования результата скрипта 2
  4. По завершении сценарий 1 печатает «сигнал», чтобы попросить сценарий 2 запустить снова

В моем случае сценарий 2 - это сценарий объекта обнаружения, который будет захватывать изображение и обрабатывать его, а затем отправлять обратно позицию сценарию 1, который будет его использовать.

Спасибо за вашу помощь

EDIT: Я нашел модуль pexpect, который должен справиться, но я изо всех сил пытаюсь его использовать, вот что я попробовал:

*Script 1:*
child = pexpect.spawn('./filename')
child.expect('Yes?')
child.send('Go')
print(child.after)

*Script 2:*
Message = input('Yes?')
print(Message)
do_something(Message)

Единственное, что я получаю, это отпечаток "Да?" строка, но не печать полученного сообщения (должно быть «Go»), а не печать child.after, который является результатом do_something ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...