2
我有一个模块,其中包含信号处理器在一个子目录中。我想设置一些东西,以便主文件(位于该子目录之上)可以导入子目录中的所有python文件,并在其中调用一个已知的函数。这样可以使输入信号通过该目录中的每个信号处理器。有没有一种干净的方式在Python中做到这一点?导入目录中的所有文件为模块,并调用类方法
我有一个模块,其中包含信号处理器在一个子目录中。我想设置一些东西,以便主文件(位于该子目录之上)可以导入子目录中的所有python文件,并在其中调用一个已知的函数。这样可以使输入信号通过该目录中的每个信号处理器。有没有一种干净的方式在Python中做到这一点?导入目录中的所有文件为模块,并调用类方法
假设文件树:
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()
此代码缺少输入检查,例如每个模块有进程()方法。
非常感谢! –