当模块名存储在变量中时,导入一个模块

6 浏览
0 Comments

当模块名存储在变量中时,导入一个模块

这个问题已经有了答案:

如何按字符串给出模块名动态导入模块?

我的代码类似于:

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日
0
0 Comments

importlib可能是最好的选择。您可以在此处找到其文档。一般来说,它比__import__更受欢迎,适用于大多数情况。

在您的情况下,您将使用:

import importlib
module = importlib.import_module(module_name, package=None)

0
0 Comments

你需要使用Python内置的__import__函数。

new_module = __import__(modulename)

0