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

问题描述 投票:1回答:1

我想在 cmd 中运行Matlab -nodesktop 模式(所以没有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()
python pandas cmd operating-system
1个回答
0
投票

如果你不想让子进程模块复杂化,而且你对完成子进程所需的时间有一个估计,你可以简单地在调用后添加一个sleep(秒)。

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

你也可以使用子进程模块。

import subprocess
process = subprocess.Popen(['COMMAND_START'])
exitCode=process.wait()
© www.soinside.com 2019 - 2024. All rights reserved.