导入任意数量的python文件

时间:2018-12-19 08:55:38

标签: python python-import

我有不同的包含神经网络的python文件。每个python文件都有关联的weights.h5文件。

现在,我想制作一个python评估文件,该文件可加载所有网络/ python文件及其权重,为每个网络创建一个实例并比较其性能。

到目前为止,我尝试将其导入为包,但随后无法通过索引访问模块。如何导入所有模型并将它们的一个实例放在列表中,以便可以通过索引访问它们?

一个例子

from evaluation.v03 import DQNSolver as DQN1
from evaluation.v04 import DQNSolver as DQN2
from evaluation.v05 import DQNSolver as DQN3
...

这可行,但是我必须对每个导入进行硬编码。另外,我无法通过索引创建实例,也无法通过索引访问它们以在所有实例之间进行比较。

2 个答案:

答案 0 :(得分:3)

使用function log(text, ...args){ console.log(text, ...args.map(t => chalk.red(t))); } 函数而不是__import__()语句。像这样:

import

然后,您可以像modules = [] for i in range(10): modules.append( __import__('evaluation.v{:>02}'.format(i)) )

一样访问它们

答案 1 :(得分:1)

建议使用import_module(),而不是直接使用__import__()

from importlib import import_module

solvers = [getattr(import_module(f'evaluation.v{i:02d}'), 'DQNSolver') for i in range(5)]

solver = solvers[1]()
# solver -> <evaluation.v01.DQNSolver object at 0x7f0b7b5e5e10>