2012-01-21 6 views
9

질문에 이미 제목이 있습니까? os.system() 호출로 시작된 일부 프로세스가 완료 될 때까지 python 스크립트를 어떻게 대기시킬 수 있습니까? 예를 들어 내 PC를 만들 수 있습니다Python : 외부에서 시작된 프로세스 완료를 기다리는 중

for i in range(0, n): 
     os.system('someprog.exe %d' % i) 

이 동시에 요구 과정을 n 번을 실행 같은 코드는) 어떤 조언을

감사를 조금 땀. 대신

답변

10

os.system을() 는 프로세스가 반환하기 전에 완료 할 대기 않습니다.

대기 중이 지 않다면 실행중인 프로세스가 백그라운드에서 실행되도록 분리되어있을 가능성이 있습니다.이 경우 백그라운드에서 Dor가 준 subprocess.Popen + wait 예제가 도움이되지 않습니다.

사이드 참고 :

import subprocess 
subprocess.call(('someprog.exe', str(i))) 

명시하는 대신에 명령 및 인수를 전달 제외) os.system을 (이상 다를 바 없다 당신이 원하는 모든 사용 subprocess.call 대기 + subprocess.Popen 경우 그것을 하나의 문자열로 넘기는 것.

12

사용 subprocess : 자세한 내용은 여기를

import subprocess 
for i in xrange(n): 
    p = subprocess.Popen(('someprog.exe', str(i)) 
    p.wait() 

읽기 : http://docs.python.org/library/subprocess.html

+0

+1 답변이 아니지만 속도가 – joaquin

+0

@joaquin thanks –

관련 문제