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自动导入包如何实现的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

在LAMP架构下整合Node.js或Python服务许多网站开发者都面临这样的问题:已有的LAMP(Linux Apache MySQL PHP)架构网站需要...

使用Scapy爬虫时,管道持久化存储文件无法写入的原因探讨在学习使用Scapy爬虫进行数据抓取时,经常会遇到一�...

Python跨平台桌面应用开发库的选择许多Python开发者都希望开发出能够在Windows和Linux系统上都能运行的桌面应用程...

Python进程池处理并发TCP请求导致客户端卡死的解析在使用Python进行网络编程时,高效处理并发TCP请求至关重要。...

深入探讨Pythonfunctools.partial对象的查看方法在使用Python的functools.partial...

Python入门:沙漏图形绘制及输入校验本文将解决一个Python新手在沙漏图形绘制程序中遇到的变量定义问题。代码...

在Python中如何处理高分辨率图片以查找白色区域?处理一张9000x7000像素的高分辨率图片,如何准确找出图片中两...

数据转换与统计:高效处理大型数据集本文将详细介绍如何将一个包含商品信息的数据列表,转换为另一个包含...
