Как мне писать в stdin подпроцесса Python?

Я пытаюсь написать сценарий Python, который запускает подпроцесс и записывает в подпроцесс stdin. Я также хотел бы иметь возможность определить действие, которое нужно предпринять в случае сбоя подпроцесса.

Процесс, который я пытаюсь запустить, представляет собой программу под названием nuke , которая имеет собственную встроенную версию Python, которой я хотел бы отправлять команды, а затем сообщать ей выйти после выполнения команд. До сих пор я понял, что если я запустил Python в командной строке, например, а затем запустил nuke в качестве подпроцесса, то я смогу ввести команды для nuke , но я бы хотел чтобы иметь возможность поместить все это в сценарий, чтобы основная программа Python могла запустить nuke и затем записать на свой стандартный ввод (и, таким образом, во встроенную версию Python) и велел ему делать шикарные вещи, поэтому я написал сценарий, который запускает nuke следующим образом:

subprocess.call(["C:/Program Files/Nuke6.3v5/Nuke6.3", "-t", "E:/NukeTest/test.nk"])

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

Я делаю это, потому что я запускаю плагин с nuke , который вызывает периодические сбои при рендеринге нескольких кадров. Поэтому я бы хотел, чтобы этот скрипт мог запустить ядерную бомбу , приказать ему что-то сделать, а затем, если он выйдет из строя, повторить попытку.Так что, если есть способ поймать аварию и при этом остаться в порядке, это было бы здорово.

55
задан Peter Mortensen 15 November 2016 в 13:20
поделиться