Как запустить внешний файл .exe и его команды по одной в python - PullRequest
0 голосов
/ 17 февраля 2019

Я новичок в модуле подпроцесса.Может кто-нибудь предложить, как запустить внешний файл .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)
...