目录结构
.
├── module/
│ ├── module_1.py
│ └── module_2.py
└── main.py
module_1.py
def echo():
print("This is module 1")
module_2.py
def echo():
print("This is module 2")
importlib库
- main.py
import os import importlib MOD_DIR = "modules/" for root, dirs, files in os.walk(MOD_DIR): modules = [f for f in files if f.endswith(".py") and not f.startswith("__")] for module in modules: module_name = module.rstrip(".py") module_path = MOD_DIR.replace(os.sep, ".") module_obj = importlib.import_module(module_path+module_name) module_obj.echo()
exec函数
- main.py
import os MOD_DIR = "modules/" for root, dirs, files in os.walk(MOD_DIR): modules = [f for f in files if f.endswith(".py") and not f.startswith("__")] for module in modules: module_name = module.rstrip(".py") module_path = MOD_DIR.replace(os.sep, ".") exec("import " + module_path + module_name) exec(module_path + module_name + ".echo()")
__import__函数
- main.py
import os MOD_DIR = "modules/" for root, dirs, files in os.walk(MOD_DIR): modules = [f for f in files if f.endswith(".py") and not f.startswith("__")] for module in modules: module_name = module.rstrip(".py") module_path = MOD_DIR.replace(os.sep, ".") module_obj = __import__(module_path + module_name, globals(), locals(), [""], 0) module_obj.echo()
参考
内置函数 — Python 3 文档
5. 导入系统 — Python 3 文档
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 cnlnnn@qq.com