如何递归导入目录中的每个文件并在每个文件中运行一个函数?

时间:2016-08-23 14:13:38

标签: python python-3.x

本质上,我试图建立一个扩展系统,每个插件通过文件中的相应功能挂钩到重要的功能。我需要一种方法来运行这个函数并获得返回值,只需循环遍历"插件" 。目录

我能做到这一点吗?

1 个答案:

答案 0 :(得分:0)

您可以使用__import__

导入dinamicaly文件

所以你只需要迭代文件夹寻找py文件(不是pyc)并导入它们

for root, dirs, files in os.walk(src_path):
    for f in files:
        if f.endswith('.py'):
            m = __import__(f)

m现在将成为模块的instanc,因此如果你有一个名为my_func的函数,你可以这样做:

m.my_func()

或者如果您将函数的名称作为字符串:

getattr(m,'my_func')()