Цикл исполняемого файла для получения результата из скрипта Python

1

В моем python script мне нужно вызвать в цикле for исполняемый файл и ждать, пока этот исполняемый файл напишет результат на "output.xml".

Как мне можно использовать wait() и как я узнаю, когда один из моих исполняемых файлов завершил создание результата, чтобы получить результат? Как закрыть этот процесс и открыть новый, чтобы снова вызвать исполняемый файл и дождаться нового результата?

    import subprocess
    args = ("bin/bar")
    popen = subprocess.Popen(args)

Мне нужно дождаться выхода из "bin/bar", чтобы сгенерировать "output.xml", а оттуда, прочитать его содержимое.

    for index, result in enumerate(results):
        myModule.callSubProcess(index)
        #this is where the problem is.
        fileOutput = open("output.xml")
        parseAndStoreInSQLiteFileOutput(index, file)
Теги:
executable
system-calls

2 ответа

1
Лучший ответ

Popen.wait() заставит script ждать завершения процесса. После этого нет необходимости убивать процесс, так как он уже выйдет.

1

Я думаю, что самый простой способ - использовать call:

import subprocess
retcode = subprocess.call('command', shell=True)

Он ожидает завершения процесса и назначения кода возврата переменной. Более подробное описание см. В 17.1.subprocess - удобные функции в документации на python. Надеюсь, поможет.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню