python 当模块名称在变量中时导入模块[duplicate]

3wabscal  于 2023-01-16  发布在  Python
关注(0)|答案(2)|浏览(160)
    • 此问题在此处已有答案**:

How can I import a module dynamically given its name as string?(10个答案)
17小时前关门了。
我有一些代码:

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

目标是从目录中获取一个字符串形式的文件名,将其传递给其他代码,然后导入模块 *,其名称存储在变量name * 中。
但是,在我的代码尝试中,import modulename中的modulename被视为要导入的模块的名称,而不是存储在该变量中的字符串。
我怎样才能得到我想要的效果呢?

czq61nw1

czq61nw11#

您需要内置的__import__函数

new_module = __import__(modulename)
uubf1zoe

uubf1zoe2#

importlib可能是一个不错的选择。它的文档是here。在大多数情况下,它通常比__import__更受欢迎。
在您的情况下,可以用途:

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

相关问题