我给Python脚本提供了命令行参数,其中两个是python文件名和我要导入的类。如何定义模块并在运行期间在我的__main__
函数中导入它?
谢谢!
ap=argparse.ArgumentParser()
ap.add_argument("-f", "--filename", help="the path to the file where the imaging class is located")
ap.add_argument("-c", "--class", help="name of the class to be imported")
args = vars(ap.parse_args())
filename = args["filename"]
imagingClass = args["class"]
from [filename] import [class] # <-- this part
答案 0 :(得分:0)
对于Python 2.7+,建议使用importlib
模块:
my_module = importlib.import_module("{}.{}".format(args["filename"], args["class"]))
您也可以使用__import__()
,但importlib
是可行的方法。
try:
my_module = __import__("{}.{}".format(args["filename"], args["class"]))
except ImportError:
# An error occurred.
答案 1 :(得分:-1)
您可以使用exec
:
exec "from {} import {}".format(filename, imagingClass)
推荐的方法是使用importlib
:
my_module = importlib.import_module("{}.{}".format(filename, imagingClass)
你也可以像这样使用__import__
函数:
my_module = __import__("{}.{}".format(filename, imagingClass))