2014-08-02 3 views
1

Мне нужно написать приложение на Python (в Linux), которое запускает внешний exe и ждет его окончания.(Python) Запуск внешнего приложения и дождаться его конца

Вот мои параметры:

Path: /home/user/docs/myapp.mat 
Application: Matlab:exe 

Мне нужно отправить myapp.mat файл matlab.exe, и ждать завершения программы. Мне нужно также распечатать код выхода приложения, чтобы проверить, закончилась ли exe без каких-либо проблем.

Любые рекомендации, как это сделать? Я нашел несколько примеров запуска exe из Python, но я пока не нашел лучшего решения для моего дела.

ответ

4

Вы можете использовать модуль подпроцесса, например, так:

Если вам нужен выход вашей программы вы можете использовать это:

import subprocess 

output = subprocess.check_output(["Matlab.exe", "/home/user/docs/myapp.mat"]) 
print output 

Если вам просто нужен код выхода, вы можете использовать функцию вызова:

import subprocess 

exitcode = subprocess.call(["Matlab.exe", "/home/user/docs/myapp.mat"]) 
print exitcode 

Если вам нужны оба, код выхода и выход, вы могли бы сделать что-то вроде этого:

import subprocess 

try: 
    output = subprocess.check_output(["Matlab.exe", "/home/user/docs/myapp.mat"]) 
    # If it doesn't fail, the exitcode equals to 0. 
    print output # Prints the output. 
except subprocess.CalledProcessError as e: 
    print e.returncode # Prints the exitcode. 
+0

и где я должен был найти код выхода? в «выходной» переменной? – Supertwister

+0

Вам нужен выход тоже, или только код выхода? – miindlek

+0

для этого момента, мне нужно обоим из них? Является ли это возможным? – Supertwister

Смежные вопросы