Этот вопрос не является дубликатомСвязь несколько раз с подпроцесс в Python
Communicate multiple times with a process without breaking the pipe?
Этот вопрос решается, поскольку его использование случай позволяет входы должны быть отправлены вместе, но это не так, если ваша программа является интерактивным (как показано здесь в данном случае).
Документ subprocess.Popen
говорит:
communicate(input=None)
Interact with process: Send data to stdin. Read data from stdout
and stderr, until end-of-file is reached. Wait for process to
terminate. ...
Можно ли общаться несколько раз с подпроцессом до его окончания, как с терминалом или с сетевой розеткой?
Например, если подпроцессом является bc
, родительский процесс может захотеть отправить ему различные входы для расчета по мере необходимости. Поскольку входы, посылаемые на bc
, могут зависеть от пользовательских входов, невозможно сразу отправить все входы.