如何告诉Python等待os.system()的Windows命令完成?

约翰

我想执行命令cmd以在-nodesktop模式下运行Matlab (因此不使用gui)。我将运行的Matlab程序将创建一个.txt文件,稍后文件将在同一脚本pandas中进行解析。但是在我的Windows 10(在Linux上可以工作)上,pandas不等待命令完成并尝试解析一个空文件,这会导致此错误:

pandas.errors.EmptyDataError: No columns to parse from file

这是我运行的命令(稍后在Matlab中使用几个(正确的)函数调用:

matlab -nodesktop -r

然后,整个命令字符串将像这样运行:

os.system(COMMAND_START)

几行后,我尝试使用解析文件pandas,但它没有等待os.system()结束,因此在Matlab命令启动后(它需要很长时间才能完成),pandas希望解析一个空文件。如何使脚本等待os.system()完成?

df = pd.read_csv("stabs.txt", header=None)
STABS_KG = df[0].to_list()
STABS_1_KG = df[1].to_list()
坎丘·科斯汀

如果您不想使子流程模块复杂化,并且可以估算完成该过程所需的时间,则可以在调用之后简单地添加一个sleep(秒):

os.system(COMMAND_START)
sleep(2) -> wait 2 seconds

您还可以使用子流程模块:

import subprocess
process = subprocess.Popen(['COMMAND_START'])
exitCode=process.wait()

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章