Как передать данные в дочерний процесс и в реальном времени передать данные в подпроцесс.python3 - PullRequest
0 голосов
/ 18 февраля 2019

У меня есть сценарий оболочки, который запрашивает ввод.Я вызываю это через подпроцесс.(Сценарий будет выполняться в течение длительного периода времени, в этом случае сохранение ввода с помощью stdin.write () и передача его в p.communicate () не будет плодотворной, так как я не получу информацию о том, что происходит с самого началадо конца программы. Я получу весь результат в конце. Есть ли способ, которым я могу преодолеть это?

Вот фрагмент, который я использую, чтобы получить живой поток выполняемого сценариячерез подпроцесс (который не запрашивает пользовательский ввод)

p = subprocess.Popen([exe_command], bufsize=0,stdout=subprocess.PIPE,stderr=subprocess.STDOUT)

while True:

    output = p.stdout.readline()
    if output.decode() == '' and p.poll() is not None:
        break

    print(output.decode('utf-8'), end='')

Застрял в этом на пару дней, в любом случае я могу изменить это, чтобы принимать входные данные, а также поток данных?

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