我正在用 python 开发一个小宠物项目,我希望能够编写外部模块并动态导入它们。到目前为止,我有这样的东西:
def getModules(self):
os.chdir(moduleDir)
for module in os.listdir():
#code goes here to import
#also append to a list for use later on
我会使用 import module
,但这只会给出一个语法错误。
最佳答案
您可以使用 importlib.import_module()
像这样:
import importlib
my_modules = []
def getModules(self):
os.chdir(moduleDir)
for module in os.listdir():
my_module = importlib.import_module(module[:-3]) # Or: module.split('.')[0]
my_modules.append(my_module)
示例:
假设我们有一个包含以下函数的模块a
:
def fn():
print("Hello World")
结果如下:
>>> import importlib
>>>
>>> my_module = importlib.import_module('a') # Note: 'a' without '.py'
>>>
>>> my_module.fn()
Hello World
关于python - 遍历给定目录中的 python 文件并导入它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41074796/