方式1
导入importlib库
使用importlib.import_module(模块名)导入
方式2 不推荐
__import__(模块名)
备注:导入操作只会执行一次
import importlib
a = int(input("请输入a的值"))
if a == 1:
module = importlib.import_module("pac1.pac1")
else:
module = importlib.import_module("pac1.pac2")
b = int(input("请输入b的值"))
if b == 1:
module = __import__("pac1.pac1")
else:
module = __import__("pac1.pac2")
应用场景
多个项目的接口自动化,每个项目的创建数据函数都封装在各自的模块中(都在同一个包下),参数替换时需要调用模块里的方法去替换实际的参数,每个项目调用的模块就不同,所以根据不同的项目去调用不同的模块执行其中的函数获取真实的参数值。这里可以用动态调用模块的方式。
将当前运行的项目写入一个文件,获取当前文件里运行的项目(该项目的名称也是模块的名称),根据该项目名称确认调用的模块名。
import importlib
pro_code= read_project_yaml('project_code')
# 方式1
module = importlib.import_module('目录名.' + pro_code)
# 方式2·不推荐,因为python2 和python3不一致,如果使用的版本不一致可能会导致出现差异问题
module = __module__('目录名.' + pro_code)