您好,登錄后才能下訂單哦!
這篇“python自動導入包如何實現”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“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自動導入包如何實現”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。