Я новичок в модуле подпроцесса.Может кто-нибудь предложить, как запустить внешний файл .exe и дать (контролировать) одну за другой команду для этого файла .exe и распечатать вывод в python?
Я пытаюсь сделать код на python для запуска xfoil.exe и давать команды одну за другой в этот файл .exe.
Мне нужно контролировать команды, которые я собираюсь ввести в этот .exe, в зависимости от ранее заданных команд, т.е. если я получу последнюю строку stdoutконкретное утверждение, мне нужно соответственно изменить следующие команды.
Пока у меня есть этот код.Но я хочу ввести команду в файл xfoil.exe и посмотреть вывод, и соответственно я хочу дать следующую команду.А также я хочу, чтобы время каждой команды
from subprocess import Popen, PIPE, STDOUT
import os
xf = Popen("xfoil.exe",
stdin=PIPE,
stdout=PIPE,
stderr=PIPE,
encoding='utf8')
def issueCmd(xf, cmd):
xf.stdin.write(cmd+'\n')
def closeCmd(xf):
xf.stdin.close()
xf.wait()
for line in xf.stdout:
line = line.rstrip()
print(line)
issueCmd(xf, 'load 2032c.dat')
issueCmd(xf, 'pane')
issueCmd(xf, 'save 2032c_mod.dat')
closeCmd(xf)
Но я хочу, чтобы некоторые, как
def issueCmd(xf, cmd, cmd2, cmd3):
xf.stdin.write(cmd+'\n')
timelimit(40 sec)
print("print the output of this command")
if (output == "THIS"):
xf.stdin.write(cmd2+'\n')
timelimit(40 sec)
else:
xf.stdin.write(cmd3+'\n')
timelimit(40 sec)