首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用python子进程和timeout命令运行Matlab脚本

使用python子进程和timeout命令运行Matlab脚本
EN

Stack Overflow用户
提问于 2020-05-01 18:17:55
回答 1查看 128关注 0票数 2

我正在尝试运行一批Matlab脚本,但不知何故它无法工作。代码只是保持空闲,并且在超时之前什么也不做。

这是最小的代码

代码语言:javascript
复制
import subproces as sub
cod = 'timeout -k 300 400 matlab -nodisplay -nosplash -r test'.split()
proc = sub.run(cod, stdout=sub.PIPE, stderr=sub.PIPE)

这些代码行一直运行到达到超时条件,在stdout和stderr中没有值。

如果我将这些行复制到终端中,它会完美地工作。(脚本本身以«exit»结尾,因此在完成后它将返回到终端)

我已经用Octave完成了类似的过程,它工作得天衣无缝。

我尝试过使用matlab的python模块,但是我目前使用的Python模块与我当前的Python版本不兼容,另一种选择是降级Python,但我不愿意这样做。

超时条件是必需的,因为其中一些脚本可以无限循环。我正在检查学生代码。

编辑:在这里讨论之后,主要的罪魁祸首似乎是超时命令,如果去掉它,脚本就会工作。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-01 20:05:22

您可以使用subprocess.runtimeout参数

代码语言:javascript
复制
import subproces as sub
cod = 'matlab -nodisplay -nosplash -r test'.split()
proc = sub.run(cod, stdout=sub.PIPE, stderr=sub.PIPE, timeout=300)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61540587

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档