2015-04-12 53 views
2

我有一个模块,其中包含信号处理器在一个子目录中。我想设置一些东西,以便主文件(位于该子目录之上)可以导入子目录中的所有python文件,并在其中调用一个已知的函数。这样可以使输入信号通过该目录中的每个信号处理器。有没有一种干净的方式在Python中做到这一点?导入目录中的所有文件为模块,并调用类方法

回答

2

假设文件树:

main.py 
processors/ 
processors/proc1.py 
processors/proc1.py 

每个PROC模块有一个方法:

def process(): 
    # Do something 

然后你可以用下面的代码从main.py

import pkgutil 
import processors 

if __name__ == '__main__': 
    modules = [] 
    for loader, name, is_pkg in pkgutil.walk_packages(processors.__path__): 
     modules.append(loader.find_module(name).load_module(name)) 

    # Later in the code when processing is required: 
    for module in modules: 
     module.process() 

此代码缺少输入检查,例如每个模块有进程()方法。

+0

非常感谢! –

相关问题