Matlab 立即返回退出代码
Posted
技术标签:
【中文标题】Matlab 立即返回退出代码【英文标题】:Matlab returns exit code immediately 【发布时间】:2014-04-17 10:21:21 【问题描述】:我正在使用 python 创建各种 matlab .m 文件,然后使用子进程运行它们。文件完成后,我想删除它们:
command = ['C:\\MatlabR2012b\\bin\\matlab.exe', '-nodesktop', '-nosplash', '-r', 'mfile']
matlab = subprocess.Popen(command) # launch matlab with m file
matlab.wait() # wait for matlab to finish before deleting .m file
print "delete"
os.remove(self.filename)
问题在于 matlab.wait() 从不等待,因为 matlab 立即返回退出代码 0。有没有其他方法可以检查matlab是否完成?
【问题讨论】:
无关:您可以使用subprocess.check_call(command)
而不是Popen(..).wait()
。如果command
以非零状态退出,前者也会引发异常。
【参考方案1】:
在 Windows 上,有 bin\matlab.exe
和 bin\win32\matlab.exe
(或 bin\win64\matlab.exe
)。前者只是后者的包装,几乎立即退出。
您可以直接拨打bin\win32\matlab.exe
,也可以在拨打bin\matlab.exe
时使用-wait
option。
【讨论】:
您先生,是我永远的英雄! :D 我永远也找不到那个。 @Pphoenix:很高兴能帮到你!以上是关于Matlab 立即返回退出代码的主要内容,如果未能解决你的问题,请参考以下文章
运行自定义可执行文件,QProcess 立即退出,退出代码为 1
Matlab uicontrol 列表框在关闭时返回而不是立即返回