使用glob定位模块,然后动态导入模块

时间:2013-06-03 23:07:58

标签: python module glob

我想要动态导入几个模块。模块名为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

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

2 个答案:

答案 0 :(得分:2)

my_module = __import__("some_file") #note you leave off the .py
x = my_module.x
y = my_module.y
....

我认为无论如何

答案 1 :(得分:2)

您可以使用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