Лучший способ запуска процесса и блокировки до его завершения

Мне говорят, что subprocess.Popen не блокируется, поэтому процесс запускается в фоновом режиме, и ваша программа python не ждет, пока она не закончится. Однако это не то, что я хочу.

У меня есть вызов моей программы во внешнюю программу python, с которой я не контролирую. Он не возвращает коды возврата, просто запускается, работает с файлами и заканчивается. Я хочу назвать это и продолжать свою программу python только после завершения этого вызова. Как мне это сделать?

3 Solutions collect form web for “Лучший способ запуска процесса и блокировки до его завершения”

Вызовите связь или подождите по подпроцессу.

Используйте метод call из подпроцесса.

subprocess.call (* popenargs, ** kwargs) Запустить команду с аргументами. Дождитесь завершения команды, а затем верните атрибут returncode.

см. → http://docs.python.org/library/subprocess.html#subprocess.call

Лучший способ – использовать метод communicate : http://docs.python.org/library/subprocess.html#subprocess.Popen.communicate

Также посмотрите на метод wait , в нем указано, почему большую часть времени вы должны использовать связь: http://docs.python.org/library/subprocess.html#subprocess.Popen.wait

Python - лучший язык программирования в мире.