(Python)启动外部应用程序并等待它的结束

时间:2014-08-02 15:44:00

标签: python exe exit-code

我需要用Python(在linux中)编写一个启动外部exe的应用程序,并等待其运行结束。

这是我的参数:

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

我需要将myapp.mat文件发送到matlab.exe,然后等待程序完成。我还需要打印应用程序的退出代码,以检查exe是否已经结束而没有任何问题。

有任何建议如何做到这一点?我已经找到了一些从Python运行exe的例子,但到目前为止我还没有找到适合我案例的最佳解决方案。

1 个答案:

答案 0 :(得分: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.