python - 遍历给定目录中的 python 文件并导入它们?

标签 python dynamic import module

我正在用 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/

相关文章:

Python - 来自 .进口

scala - 如何在相对包导入中引用父包?

python - 如何删除包含重复第一个元素的二维列表中的那些一维列表?

python、% 和 mysql 语句

jquery - 垂直居中内容除非更大

c - 结构中数组的动态内存分配

python - 使用 Python 将 JSON 对象导入 Postgresql

python - QTableView 中的换行符

.net - 如何直接调用 DynamicObject.TryGetMember?

python - 如何在 python 控制台中运行 Odoo ORM 方法?