Все примеры, которые я вижу для взаимодействия с процессом, использующим Python 3 subprocess.Popen
, используют Popen.communicate("input_text")
ровно один раз перед вызовом Popen.communicate()
, чтобы получить стандартный вывод и завершить программу.У меня есть несколько программ, которые я хочу написать в сценарии, которые требуют вмешательства человека через stdin, поэтому я хочу автоматизировать их, так как запросы предсказуемы.
Например, внутреннее приложение лицензирования требует, чтобы мы пропустили приложениеинформация через запросы (не из командной строки), относящиеся к уникальному идентификатору клиента (4-значное целое число), количеству пользователей и т. д. И затем это должно быть сделано 30 раз (случайное число), каждое для отдельного продукта,идентифицируется другим целым числом.
Сценарии, которые просты, если только я смогу научиться делать устойчивые взад-вперед, используя Popen
.Должен ли я использовать Popen.communicate()
или Popen.stdout
и Popen.stdin()
и в чем разница между ними?