如何从给定目录加载所有模块并从每个模块运行特定函数

2024-04-27 04:31:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我想动态地将所有模块加载到一个给定的目录(modules),并在每个目录(.main())中运行一个特定的方法

我遇到了以下问题:How to load all modules in a folder?

最终得到以下代码: 我的main.py

import modules

if __name__ == "__main__":
    for module in modules.__all__:
        module.main()

modules文件夹中的__init__.py如下所示:

from os.path import dirname, basename, isfile, join
import glob

modules = glob.glob(join(dirname(__file__), "*.py"))
__all__ = [ basename(f)[:-3] for f in modules if isfile(f) and not f.endswith('__init__.py')]

但是,我得到以下错误:

'str' object has no attribute 'main'

我相信这是一个新手问题,但我不知道怎么做


Tags: inpyimport目录modulesforifinit