【发布时间】: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以非零状态退出,前者也会引发异常。
标签: python matlab subprocess exit-code