python自动导入包的实现

 更新时间:2023年04月07日 11:07:04   作者:阿福不是狗  
本文主要介绍了python自动导入包的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

问题描述: 代码编写过程中,需要引入文件,但是引入的文件随着项目的变大会变多,所以编写了一个自动导入的方法,会根据文件名称的特点进行导入。

def auto_import(packagePath: str, fileTag: str, interceptLength: int, level=1):
    """
    自动导入函数,导入具有某个标识的文件
    :param packagePath: 当前包路径
    :param level: 软件包层级
    :param fileTag:文件名称标识
    :param interceptLength:导入属性截取名称
    :return:
    """
    # 定义导入属性列表和包
    att_list = []
    # 获取对应的包层级
    rank = level
    package = ''
    for i in range(level):
        # 获取父级包名称拼接包名称
        package += packagePath.split('\\')[-rank] + '.'
        rank -= 1
    # 遍历当前包下的所有文件
    for fileName in os.listdir(packagePath):
        # 筛选出nameTag的文件进行导入
        if fileTag in fileName:
            print(f'导入包名称:{package}' + fileName[:-3])
            # 动态导入包,并获取包内的具体模块、属性
            att_list.append(
                # 导入包中的某个属性
                importlib.import_module(
                    # 拼接模块路径
                    f'{package}' + fileName[:-3]
                    # 获取模块中的对应属性
                ).__dict__[fileName[:-interceptLength]])
    # 返回属性列表
    return att_list

假如我们创建了多个TableModel文件,需要校验对应的文件是否在数据库中存在,那么我们就可以这么用:

import os
import auto_import


def auto_check_model():
    """
    导入tableModel中的所有文件,验证数据库中表是否存在
    :return: 返回验证结果
    """
    # 获取当前文件夹路径
    packagePath = os.path.dirname(os.path.realpath(__file__))
    # 获取所有model文件
    model_list = auto_import(packagePath=packagePath, fileTag='Model',  interceptLength=8, level=2)
    # 建立数据库连接
    connect = DatabaseOperation().connect()
    # 检查model在数据库中是否存在,不存在则创建
    for i in range(len(model_list)):
        model_list[i].metadata.create_all(connect)
        print(f"####     {model_list[i].__name__}校验完成!    ####")

到此这篇关于python自动导入包的实现的文章就介绍到这了,更多相关python自动导入包内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python接口自动化使用requests库发送http请求

    python接口自动化使用requests库发送http请求

    这篇文章主要介绍了python接口自动化使用requests库发送http请求,HTTP协议 ,一个基于TCP/IP通信协议来传递数据,包括html文件、图像、结果等,即是一个客户端和服务器端请求和应答的标准
    2022-08-08
  • Python模拟鼠标点击实现方法(将通过实例自动化模拟在360浏览器中自动搜索python)

    Python模拟鼠标点击实现方法(将通过实例自动化模拟在360浏览器中自动搜索python)

    这篇文章主要介绍了Python模拟鼠标点击实现方法(将通过实例自动化模拟在360浏览器中自动搜索python),需要的朋友可以参考下
    2017-08-08
  • Python实现Tracert追踪TTL值的方法详解

    Python实现Tracert追踪TTL值的方法详解

    Tracert命令跟踪路由原理是IP路由每经过一个路由节点TTL值会减一。本文我们将通过scapy构造一个路由追踪工具并实现一次追踪,感兴趣的小伙伴可以了解一下
    2022-10-10
  • keras做CNN的训练误差loss的下降操作

    keras做CNN的训练误差loss的下降操作

    这篇文章主要介绍了keras做CNN的训练误差loss的下降操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • 详解Python打包分发工具setuptools

    详解Python打包分发工具setuptools

    这篇文章主要介绍了Python打包分发工具setuptools的相关知识,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-08-08
  • Python 列表 sort()函数使用实例详解

    Python 列表 sort()函数使用实例详解

    这篇文章主要介绍了Python 列表 sort()函数使用详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-07-07
  • Python设置在shell脚本中自动补全功能的方法

    Python设置在shell脚本中自动补全功能的方法

    今天小编就为大家分享一篇Python设置在shell脚本中自动补全功能的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • 浅谈Python traceback的优雅处理

    浅谈Python traceback的优雅处理

    这篇文章主要介绍了浅谈Python traceback的优雅处理,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • Python中JSON转换的全面指南与最佳实践

    Python中JSON转换的全面指南与最佳实践

    JSON是现代应用程序中最流行的数据交换格式之一,Python通过内置的json模块提供了强大的JSON处理能力,本文将深入探讨Python中的JSON转换,包括基本用法、高级特性以及最佳实践,需要的朋友可以参考下
    2025-03-03
  • 使用jupyter notebook运行python和R的步骤

    使用jupyter notebook运行python和R的步骤

    这篇文章主要介绍了使用jupyter notebook运行python和R的步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08

最新评论