gpt4 book ai didi

python - 使用 for 循环和名称列表在 python 中导入文件

转载 作者:太空狗 更新时间:2023-10-30 00:49:14 26 4
gpt4 key购买 nike

我正在尝试导入许多文件。我有一个字符串列表 (myList),这些字符串是我要导入的模块文件的名称。我要导入的所有文件都在一个名为 parentDirectory 的目录中。此目录位于此代码所在的文件夹中。

我目前拥有的是:

myList = {'fileOne', 'fileTwo', 'fileThree'}
for toImport in myList:
moduleToImport = 'parentDirectory.'+toImport
import moduleToImport

此代码仅将 moduleToImport 视为模块名称,但我希望代码理解它是一个字符串变量。

This is the Error Code:
dule>
import moduleToImport
ImportError: No module named moduleToImport

最佳答案

如果你想要和import <modulename>一样的效果, 那么一种方法是使用 importlib.import_module() 导入模块, 然后使用 globals()函数获取全局命名空间并在其中使用相同的名称添加导入的模块。

代码-

myList = {'fileOne', 'fileTwo', 'fileThree'}
import importLib
gbl = globals()
for toImport in myList:
moduleToImport = 'parentDirectory.'+toImport
gbl[moduleToImport] = importlib.import_module(moduleToImport)

然后你可以使用 -

parentDirectory.fileOne.<something>

示例/演示 -

>>> import importlib
>>> globals()['b'] = importlib.import_module('b')
>>> b.myfun()
Hello

关于python - 使用 for 循环和名称列表在 python 中导入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31661188/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com