当模块名存储在变量中时,导入一个模块
当模块名存储在变量中时,导入一个模块
这个问题已经有了答案:
我的代码类似于:
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 modulename
中的modulename
被视为要导入的模块的名称,而不是存储在该变量中的字符串。
如何获得我想要的效果?
admin 更改状态以发布 2023年5月22日
importlib可能是最好的选择。您可以在此处找到其文档。一般来说,它比__import__更受欢迎,适用于大多数情况。
在您的情况下,您将使用:
import importlib module = importlib.import_module(module_name, package=None)