我想在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()
答案 0 :(得分:0)
如果您不想使子流程模块复杂化,并且可以估算完成该过程所需的时间,则可以在调用之后简单地添加一个睡眠(秒):
os.system(COMMAND_START)
sleep(2) -> wait 2 seconds
您还可以使用子流程模块:
import subprocess
process = subprocess.Popen(['COMMAND_START'])
exitCode=process.wait()