2012-07-31 6 views
1

나는 그런 식으로, 서브 프로세스를 시작하는 함수를 호출 할 : 동적 변수를 생성 할 수 있습니까?

processrrd = Popen(args1, stdout=PIPE, stderr=PIPE, env={'LANG':'[email protected]','TZ':'Europe/Berlin'}) 
outputrrd = processrrd.communicate() 
(output, error) = outputrrd 

가 지금은 노동자를 paralize하기 위해 multiprocessing.pool를 사용하고 싶습니다. 문제는 변수 출력이 마지막 Popen으로 덮어 쓰여진다는 것입니다. 그래서 name1_processrrd와 같은 특정 변수 (processrrd)를 만들 수 있습니까?

감사합니다. 스테판

UDPATE : 이 일을하려고했으나 프로세스의 출력이 .... 동일합니다 심지어 (내가 추측하고있어 multiprocessing 당신에게 더 나은 접근 방식을 제공 여부를 고려하지 않고

processrrd = [] 
processrrd.append((hostgroup+'_processrrd')) 
print processrrd 
    for name in processrrd: 
     print name 
     name = Popen(args1, stdout=PIPE, stderr=PIPE, env={'LANG':'[email protected]','TZ':'Europe/Berlin'}) 
     outputrrd = name.communicate() 
    (output, error) = outputrrd 
+3

생성 변수와 같은 예 dict 또는 list으로, 데이터 구조의 일종 각각의 핸들을 저장하는 더 나을 것) 않지만, 아주 잘 전혀 그것을 알고하지 않습니다 가능하지만 낙담합니다. 목록을 사용하십시오. –

답변

1

, 당신은 런타임에

# TODO Use name and key that works for you. 
my_processes['[email protected]'] = Popen(args1, stdout=PIPE, stderr=PIPE, env={'LANG':'[email protected]','TZ':'Europe/Berlin'}) 
관련 문제