Python 简单使用;作为“进口”;要加载多场景数据?

Python 简单使用;作为“进口”;要加载多场景数据?,python,python-3.x,variable-assignment,python-import,Python,Python 3.x,Variable Assignment,Python Import,我以python模块的形式接收场景数据(场景中具有不同值的相同变量集) 例如: import sys def main(): script = sys.argv[0] no_scens = int(sys.argv[1]) for i in range(0, no_scens): process_1(i) def process_1(scen_count): if scen_count == 0: import scen0

我以python模块的形式接收场景数据(场景中具有不同值的相同变量集)

例如:

import sys

def main():

    script = sys.argv[0]
    no_scens = int(sys.argv[1])

    for i in range(0, no_scens):
        process_1(i)

def process_1(scen_count):

    if scen_count == 0:
        import scen00
    elif scen_count == 1:
        import scen01 as scen00

    print(scen00.scenario_name[0], scen00.scenario_num[0])
scen00.py

scenario_name = ["foo"]
scenario_num = [0]
.
.
scenario_name = ["bar"]
scenario_num = [1]
.
.
scen01.py

scenario_name = ["foo"]
scenario_num = [0]
.
.
scenario_name = ["bar"]
scenario_num = [1]
.
.
我使用
import as
将每个场景导入到python函数的单独关联中,然后引用基本名称空间进行所有编程

例如:

import sys

def main():

    script = sys.argv[0]
    no_scens = int(sys.argv[1])

    for i in range(0, no_scens):
        process_1(i)

def process_1(scen_count):

    if scen_count == 0:
        import scen00
    elif scen_count == 1:
        import scen01 as scen00

    print(scen00.scenario_name[0], scen00.scenario_num[0])
预期成果:

foo 0
酒吧1

no\u scens
2
时,此代码起作用,但
process\u 1()
中为
scen00
分配不同场景的段不可伸缩且不美观。假设我现在有150个场景要导入,我如何才能最好地修改
process_1()

您可以尝试变量导入:

def process_1(scen_count):
    scen = __import__("scen%02d" % scen_count)
    print(scen.scenario_name[0], scen.scenario_name[1])

标记为重复的问题似乎没有引用名称空间。在我的问题中,我怎样才能更清楚地说明这一点?名称空间是什么?如果能够使用名称引用新导入的模块(这不是Python文档所称的名称空间),那么您只需执行以下操作:
def process(scen\u count):name=“scen{}”。format(scen\u count)mod=importlib.import\u module(name)print(mod.scenario\u name[0],mod.scenario\u num[0])
(部分出现在副本的一个答案中)您指出的内容与导入代码一样重要(正如副本答案所示,版本比使用导入更合适)。作为第一次发布的海报,如果没有您和msaba92的洞察力,我很难从副本中获得完整答案。