使用python子进程和超时命令运行Matlab脚本

时间:2020-05-01 10:17:55

标签: python matlab

我正在尝试运行一批Matlab脚本,但某种程度上它不起作用。该代码只是保持空闲状态,直到超时都不会执行任何操作。

这是最小的代码

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,但我不愿意这样做。

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

编辑:在这里进行了讨论之后,罪魁祸首似乎是超时命令,如果将其删除,脚本将起作用。

1 个答案:

答案 0 :(得分:1)

您可以使用subprocess.run>>> print(my_series.str.strip()) 0 osobní automobil 1 osobní automobil 2 osobní automobil 3 přípojné vozidlo - přívěs 4 osobní automobil 5 osobní automobil 6 osobní automobil 7 přípojné vozidlo - přívěs 8 osobní automobil 9 osobní automobil 参数:

timeout