如何加载文件夹中的所有模块?

新手上路,请多包涵

有人可以为我提供一个导入整个模块目录的好方法吗?

我有这样的结构:

 /Foo
    bar.py
    spam.py
    eggs.py

我尝试通过添加 __init__.py 并执行 from Foo import * 将其转换为一个包,但它并没有像我希望的那样工作。

原文由 Evan Fosmark 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 406
2 个回答

列出当前文件夹中的所有python( .py )文件,并将它们作为 __all__ 变量放在 __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')]

原文由 Anurag Uniyal 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题