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])
# 動態(tài)導入包,并獲取包內的具體模塊、屬性
att_list.append(
# 導入包中的某個屬性
importlib.import_module(
# 拼接模塊路徑
f'{package}' + fileName[:-3]
# 獲取模塊中的對應屬性
).__dict__[fileName[:-interceptLength]])
# 返回屬性列表
return att_list
假如我們創(chuàng)建了多個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在數據庫中是否存在,不存在則創(chuàng)建
? ? for i in range(len(model_list)):
? ? ? ? model_list[i].metadata.create_all(connect)
? ? ? ? print(f"#### ? ? {model_list[i].__name__}校驗完成! ? ?####")到此這篇關于python自動導入包的實現的文章就介紹到這了,更多相關python自動導入包內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:
相關文章
python接口自動化使用requests庫發(fā)送http請求
這篇文章主要介紹了python接口自動化使用requests庫發(fā)送http請求,HTTP協(xié)議?,一個基于TCP/IP通信協(xié)議來傳遞數據,包括html文件、圖像、結果等,即是一個客戶端和服務器端請求和應答的標準2022-08-08
Python模擬鼠標點擊實現方法(將通過實例自動化模擬在360瀏覽器中自動搜索python)
這篇文章主要介紹了Python模擬鼠標點擊實現方法(將通過實例自動化模擬在360瀏覽器中自動搜索python),需要的朋友可以參考下2017-08-08
使用jupyter notebook運行python和R的步驟
這篇文章主要介紹了使用jupyter notebook運行python和R的步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-08-08

