我想执行命令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] 删除。
我来说两句