【问题标题】:possible to generate a dynamic variable?可以生成动态变量吗?
【发布时间】:2012-07-31 14:33:56
【问题描述】:

我想调用一个启动子进程的函数,像这样:

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

【问题讨论】:

  • 在运行时生成变量是可能的,但不鼓励。使用列表。

标签: python function variables multiprocessing


【解决方案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'})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-17
    • 1970-01-01
    • 2012-10-28
    • 2010-11-14
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    相关资源
    最近更新 更多