Зацикливание исполняемого файла для получения результата из скрипта Python - PullRequest
1 голос
/ 20 марта 2010

В моем скрипте на python мне нужно вызвать в цикле 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)

Ответы [ 2 ]

1 голос
/ 24 марта 2010

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

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

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

1 голос
/ 20 марта 2010

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

...