2012-07-31 85 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。 問題是變量outputrrd ist被最後一個Popen覆蓋。 那麼,是否有可能創建一個特定的變量(processrrd),比如name1_processrrd?

問候。 斯特凡

UDPATE: 試過這一個,但過程的輸出是一樣的....:

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

生成變量是可能的,但不鼓勵。使用一個列表。 – 2012-07-31 14:35:49

回答

1

即使不考慮是否multiprocessing給你任何更好的方法(我猜它確實,但不知道它很好的話),你會更好每個把手存儲某種數據結構,如dictlist,例如,在運行時

# 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'})