我正在使用Python的subprocess.call()
来运行一系列python脚本,每个脚本都运行Matlab脚本。麻烦的是,一旦第一个Matlab脚本结束。
外部Python脚本解析csv文件的目录,以便根据csv文件的每一行运行实验。对于每个实验,它调用python程序来运行解析数据并提供给Matlab。然后Matlab运行每个实验。除了在第一次运行matlab之后整个事物退出。 Matlab退出它的子子流程能不能解决整个问题?
for line in csvfile:
if debug:
print 'Experiment %d' % count
ts = line.split(',')
startStamp=ts[0]
cmdargs = ['python prep_lssvm.py']
cmdargs.append(str(site))
cmdargs.append(str(startStamp))
cmdargs.append(str(daysTraining))
if debug:
print cmdargs
for i in range(len(argv)-2):
cmdargs.append(str(argv[i+2]))
command = ' '.join(cmdargs)
if debug:
print command
call(command,shell=True)
#Never goes past here<<<<<<=======================
dirname = ''.join([site,'_',str(count)])
mkdir(dirname)
call(''.join(['mv ',site,'/*.txt ',dirname]),shell=True,stdout=outfile)
答案 0 :(得分:0)
我似乎通过橡皮鸭调试解决了这个问题。
我通过异步执行的Popen()调用MATLAB脚本,而不是同步执行的call()。将所有Popen实例更改为调用似乎已解决了问题。