У меня есть сценарий оболочки, который запрашивает ввод.Я вызываю это через подпроцесс.(Сценарий будет выполняться в течение длительного периода времени, в этом случае сохранение ввода с помощью 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='')
Застрял в этом на пару дней, в любом случае я могу изменить это, чтобы принимать входные данные, а также поток данных?