有可能生成动态变量吗?

时间:2012-07-31 14:33:56

标签: python function variables multiprocessing

我想调用一个函数,它启动一个子进程,如:

processrrd = Popen(args1, stdout=PIPE, stderr=PIPE, env={'LANG':'de_DE@euro','TZ':'Europe/Berlin'})
outputrrd = processrrd.communicate()
(output, error) = outputrrd

现在我想使用multiprocessing.pool来平衡工作者。 问题是变量outputrrd被最后一个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':'de_DE@euro','TZ':'Europe/Berlin'})
        outputrrd = name.communicate()
    (output, error) = outputrrd

1 个答案:

答案 0 :(得分:1)

甚至没有考虑multiprocessing是否给你更好的方法(我猜它确实如此,但根本不知道它),你最好将每个句柄存放在某种形式数据结构,例如dictlist,例如

# TODO Use name and key that works for you.
my_processes['de_DE@euro'] = Popen(args1, stdout=PIPE, stderr=PIPE, env={'LANG':'de_DE@euro','TZ':'Europe/Berlin'})