importing a module when the module name is in a variable
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
Dynamic module import in Python
我正在编写一个小脚本,该脚本从目录中获取文件名,并将其传递给另一个模块,该模块随后导入该文件。
所以流动就像1)获取模块名(存储在变量中)2)将此变量名传递给模块3)导入名称存储在变量名中的模块
我的代码就像
1 2 3 4 5 | data_files = [x[2] for x in os.walk(os.path.dirname(sys.argv[0]))] hello = data_files[0] modulename = hello[0].split(".")[0] import modulename |
问题是,当它到达import语句时,它将module name读取为一个实模块名,而不是该变量中存储的值。我不确定这在python中是如何工作的,任何解决这个问题的帮助都是很好的。
您需要内置的
1 | new_module = __import__(modulename) |
importlib可能是解决问题的方法。文件在这里。在大多数情况下,它通常比
在您的情况下,您将使用:
1 2 | import importlib module = importlib.import_module(module_name, package=None) |