Резюме
Я автоматизирую xfoil с помощью модуля subprocess
.Я хотел бы иметь возможность начать сеанс xfoil с несколькими командами и оставить его открытым для пользователя.Это поможет отладке, а также, в более общем смысле, будет иметь базовую подпрограмму для запуска xfoil (без необходимости каждый раз вводить один и тот же набор команд).
Я могу выполнить любую команду xfoil, используя subprocess.communicate()
.Однако при открытии с помощью subprocess
xfoil систематически закрывается без действий пользователя.
Пример
С помощью следующего кода вы можете увидеть, как быстро открываются и закрываются xfoil.
import subprocess
XFOIL_PATH = 'xfoil.exe'
xfoil = subprocess.Popen(XFOIL_PATH, stdin=subprocess.PIPE, stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
universal_newlines=True)
actions = 'NACA 0012\nGDES\n'
xfoil.communicate(input=actions)
Примечание
Я использовал subprocess.Popen()
с Rhino, и Rhino остается открытым, пока я не закрою его вручную.Я не понимаю, почему поведение xfoil отличается.
Я подозреваю, что это как-то связано со стандартным выводом конкретного приложения, но это дикое предположение.Надеюсь, что с этим можно что-то сделать.