저는 파이썬의 subprocess.call()을 사용하여 각각이 Matlab 스크립트를 실행하는 일련의 파이썬 스크립트를 실행하고 있습니다. 첫 번째 Matlab 스크립트가 끝나면 문제가 발생합니다.왜 파이썬은 파이썬 서브 프로세스 종료시 멈 춥니 까?
외부 Python 스크립트는 csv 파일의 각 행을 기반으로 실험을 실행하도록 설정하기 위해 csv 파일의 디렉토리를 구문 분석합니다. 각 실험마다 파이썬 프로그램을 호출하여 데이터를 파싱하고 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)
'call (command, shell = True) '행에서'shell = True'를 사용하는 특별한 이유 – avasal
예외가 있습니까? –
이것은 분명히 재연 해 보였지만 명령을 호출 한 직후 (그리고 바로 직전에)'print' 문을 써서 프로세스가 종료되는 행이라는 사실을 알 수 있었습니까? –