Автоматизировать отправку ответа на подпроцесс в Python - PullRequest
1 голос
/ 22 января 2020

У меня есть программа, которая при запуске из Windows Командная строка требует, чтобы я нажал клавишу ввода, чтобы ответить на несколько вопросов. Я пытаюсь автоматизировать процесс запуска программы и нажимаю клавишу ввода с Python.

Моя попытка

import subprocess
from time import sleep

p = subprocess.Popen(['bcontroller','login','aws'], stdin=subprocess.PIPE, shell=True)
for _ in range(5):
    sleep(10)
    p.communicate(input=b'\n')

Когда я запускаю это, я сначала получаю предупреждение:

ошибка: неправильная функция.

Затем через ~ 10 секунд подпроцесс выдает ошибку, которая останавливает выполнение:

ValueError: запись в закрытый файл

Кто-нибудь знает, что может быть не так?

...