2

我有几个要动态导入的模块。这些模块被命名为 prefix_? 在哪里 ?= [0,1,2,3]。我使用 glob 来获取文件/模块的列表。

module = glob.glob(prefix_?.py)
module.sort()

现在我想一次导入一个模块并运行一些代码。

for m in range(0,len(module),1):
    from module[m] import x, y, z

但是我不能这样做,因为模块是一个字符串列表。有没有办法将格式从字符串转换为我可以导入的实际模块?

4

2 回答 2

3

您可以使用importlib模块:

import glob
import importlib
module = glob.glob(prefix_?.py)
module.sort()
for m in module:      #iterate over list itself, why range?
    mod = importlib.import_module(m[:-3]) #strip off .py        
于 2013-06-03T23:16:48.807 回答
2
my_module = __import__("some_file") #note you leave off the .py
x = my_module.x
y = my_module.y
....

我想反正就是这样

于 2013-06-03T23:13:21.617 回答