gpt4 book ai didi

Python 不等待 MATLAB 完成

转载 作者:太空狗 更新时间:2023-10-30 00:41:22 25 4
gpt4 key购买 nike

我正在通过 subprocess 模块将一个小的 MATLAB 脚本与 Python 连接起来。如下:

cmd='(matlab -nosplash -nodesktop -r "optimizer;quit;")'
p = subprocess.Popen(cmd,stdin=None,stdout=None,shell=True)
#subprocess.Popen.wait(p)
#p.wait()
print "DONE?"

但是甚至在 MATLAB 启动之前就打印了“DONE”!因此,我过去的整个代码都被破坏了。

我试过:

  • 使用 os.system() 调用(这是我开始的地方,但我读到它已被弃用)
  • 使用 p.wait()subprocess.Popen.wait。两者都不起作用。
  • 使用 3 分钟的手动暂停(MATLAB 平均完成所需的最长时间) super 马虎

我错过了什么?

最佳答案

对我来说很好:

import subprocess
retcode = subprocess.call(["matlab", "-nosplash", "-nodesktop", "-r", "quit;"])
print "DONE", retcode

相应地拆分命令参数,仅使用您实际需要的选项(例如,不需要 shell=True),使用直接执行您之后的操作的函数(call ),即调用并等待完成。

根据您的安装(请参阅 http://www.mathworks.com/help/matlab/ref/matlabwindows.html),Matlab 可能会以一种立即退出的方式启动。要处理该问题,请将“-wait”添加到您的参数列表中。

关于Python 不等待 MATLAB 完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13959785/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com