2012-07-31 118 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'})