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

时间:2020-05-23 10:24:25

标签: python pandas cmd operating-system

我想在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命令启动后(它立即它要花很长时间才能完成),熊猫希望解析一个空文件。 如何让脚本等待os.system()完成?

df = pd.read_csv("stabs.txt", header=None)
STABS_KG = df[0].to_list()
STABS_1_KG = df[1].to_list()

1 个答案:

答案 0 :(得分:0)

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

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

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

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