Python 动态导入库

Python 动态导入库

从一个文件夹下遍历所有.py文件,并利用__Import__()函数实现全局导入

例程

python 复制代码
import os  # 导入操作系统接口模块
import sys  # 导入系统模块

# 将当前目录下的 DIR 目录添加到系统路径中,以便后续导入模块
sys.path.append('./DIR')

# 定义一个函数,从指定的模块中导入所有不以下划线开头的属性
def import_all_from_module(module_name, fromlist):
    # 动态导入指定的模块,并获取模块对象
    module = __import__(module_name, fromlist=fromlist)
    # 遍历模块中的所有属性
    for attribute in dir(module):
        # 如果属性名不以下划线开头
        if not attribute.startswith('_'):
            # 将该属性添加到全局命名空间中
            globals()[attribute] = getattr(module, attribute)

# 定义要导入模块的目录路径
directory_path = "./DIR"
# 获取目录下所有以 .py 结尾且不等于 __init__.py 的文件名,并去掉文件扩展名
module_files = [f[:-3] for f in os.listdir(directory_path) if f.endswith(".py") and f != "__init__.py"]

# 遍历所有模块文件名
for f in module_files:
    # 从每个模块文件中导入所有属性
    import_all_from_module(f, fromlist=['*'])

关于 import() 函数

python 复制代码
__import__("numpy")

并不会起到类似 import numpy 的作用,运行后仍然会报 " no module named numpy "

正确用法:

python 复制代码
np = __import__("numpy")

print(np.pi)

此种方式类似:

python 复制代码
import numpy as np

如果需要类似如下代码的功能,则需参考文章开头的例程:

python 复制代码
from numpy import *
相关推荐
西柚小萌新3 分钟前
【深入浅出PyTorch】--4.PyTorch基础实战
人工智能·pytorch·python
用户8356290780516 分钟前
掌控PDF页面:使用Python轻松实现添加与删除
后端·python
用户37215742613541 分钟前
Python 实现 Excel 文件加密与保护
python
Derrick__11 小时前
Python访问数据库——使用SQLite
数据库·python·sqlite
总有刁民想爱朕ha1 小时前
AI大模型学习(17)python-flask AI大模型和图片处理工具的从一张图到多平台适配的简单方法
人工智能·python·学习·电商图片处理
小虎鲸001 小时前
PyTorch的安装与使用
人工智能·pytorch·python·深度学习
加油吧zkf1 小时前
Python入门:从零开始的完整学习指南
开发语言·前端·python
杰瑞学AI2 小时前
我的全栈学习之旅:FastAPI (持续更新!!!)
后端·python·websocket·学习·http·restful·fastapi
用户3721574261352 小时前
Python 高效实现 Excel 与 CSV 互转:用自动化提升效率
python
CodeCraft Studio3 小时前
CAD文件处理控件Aspose.CAD教程:在 Python 中将 SVG 转换为 PDF
开发语言·python·pdf·svg·cad·aspose·aspose.cad