from importlib import util from os import path from glob import glob routers = [] for module_path in [f for f in glob(path.join(path.dirname(__file__), '**/*.py'), recursive=True) if path.basename(f) != "__init__.py"]: spec = util.spec_from_file_location('', module_path) module = util.module_from_spec(spec) spec.loader.exec_module(module) router = getattr(module, 'router', None) if router is not None: routers.append(router)