我用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是否已完成的方法吗?
答案 0 :(得分:4)
在Windows上,有bin\matlab.exe
和bin\win32\matlab.exe
(或bin\win64\matlab.exe
)。前者只是后者的包装,并且很快就会退出。
您可以直接致电bin\win32\matlab.exe
或致电bin\matlab.exe
时使用-wait
option。