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

Проблема, с которой я сейчас сталкиваюсь, связана с библиотекой подпроцессов для python. У меня есть бинарная программа, которая, когда я ее выполняю, запрашивает имя, а затем мне нужно дать ей имя. После того, как я назову это имя, мне нужно написать что-нибудь интересное (просто пример не имеет значения, что я пишу). Мне также нужно, чтобы это повторялось, как если бы программа запрашивала другое имя еще 5 раз (просто пример). Ход программы выглядит примерно так:

user@linux# ./exec 
Enter access name: pythonUser!

access granted. Write some notes.

>My favorite snack is a Foo Bar!
>Taking notes is my favorite part of the day!

Good notes! Closing now.

По сути, мне нужно иметь возможность читать вывод программы, и если в выводе есть строка, мне нужно иметь возможность записать определенный вывод в программу.

Я посмотрел другие SO-посты и прочитал библиотеку подпроцессов, и все это очень важно, и мне трудно понять все это.

Итак, мой текущий python-код выглядит так:

import subprocess

p=subprocess.Popen(['./exec'], stdout=subprocess.PIPE, stdin=subprocess.PIPE, shell=True)

execOutput = p.stdout.readline()
if ("Enter access name:" in execOutput):  
    p.communicate(input="pythonUser")

В настоящее время он просто зависает на execOutput = p.stdout.readline(), и я не уверен, почему.

Заранее спасибо за помощь!

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