Я пытаюсь сделать 2 отдельных скрипта, взаимодействующих через один терминал, используя python3 .
Я пробовал это с использованием класса "подпроцесс", но я не могу сделать это. Моя проблема в том, что функция subprocess.getoutput () или call () всегда запускает вызываемый скрипт.
Я ожидаю, что функция read () в сценарии 2 получит печать из сценария 1 в переменную сценария 2.
Для ясности:
- Скрипт 1 запускает скрипт 2
- Скрипт 2 выводит определенные результаты, затем ждет инструкции
- Скрипт 1 читает вывод терминала для использования результата скрипта 2
- По завершении сценарий 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 ().