Python如何动态批量导入指定路径脚本的main函数并设置别名
动态批量导入Python模块函数实现方案
实现逻辑
使用Python标准库importlib实现动态导入,无需手动编写逐行导入语句,后续新增工具仅需更新files配置列表即可完成自动导入。
完整代码
import importlib files = [ {"path":"tools/tool_1.py", "alias" : "tools__tool_1"}, {"path":"tools/tool_2.py", "alias" : "tools__tool_2"}, # 新增工具仅需在此追加配置即可 {"path":"tools/tool_N.py", "alias" : "tools__tool_N"} ] for file in files: # 将文件路径转换为Python可识别的点分模块名 module_name = file["path"].removesuffix(".py").replace("/", ".") # 动态导入对应模块 imported_module = importlib.import_module(module_name) # 将模块的main函数绑定到当前全局命名空间,使用配置的别名 globals()[file["alias"]] = imported_module.main
注意事项
- 确保
tools目录在Python的模块搜索路径中,可在tools目录下新增空的__init__.py文件,兼容不同Python版本的包识别规则 - 导入完成后可直接使用别名调用对应函数,效果和手动编写导入语句完全一致,调用示例:
# 调用tool_1.py中的main函数 tools__tool_1()
内容的提问来源于stack exchange,提问作者Daniel
相关产品推荐
相关产品推荐

