我需要用Python(在linux中)编写一个启动外部exe的应用程序,并等待其运行结束。
这是我的参数:
Path: /home/user/docs/myapp.mat
Application: Matlab:exe
我需要将myapp.mat文件发送到matlab.exe,然后等待程序完成。我还需要打印应用程序的退出代码,以检查exe是否已经结束而没有任何问题。
有任何建议如何做到这一点?我已经找到了一些从Python运行exe的例子,但到目前为止我还没有找到适合我案例的最佳解决方案。
答案 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.