我創造各種MATLAB的.m檔案與Python,然後使用子進程運行它們。當文件完成後,我想將其刪除:Matlab的返回退出代碼立即
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是否完成?
無關:你可以使用的''而不是POPEN(..)'subprocess.check_call(命令)等待()'。如果'command'以非零狀態退出,前者也會引發異常。 – jfs