摘要:在專案開發程序中,一個良好的專案結構對于團隊的協作和代碼的可維護性起著重要作用,通過使用自動生成專案結構文字樣式的工具,不僅節省了手動撰寫專案結構的麻煩,還確保了結構的一致性和準確性,
本文分享自華為云社區《【Python】自動化構建專案結構樣式》,作者: frica01,
引言
在使用 Python 或者其它編程語言的專案時候,撰寫 README.md 往往是不可或缺的;
而在 README.md 中,關于專案結構的樣式展示,這個是可選的,不展示也無傷大雅,但有展示的話,有以下優點:
- 提供清晰的專案導航:包含專案結構的文字樣式可以讓讀者快速了解專案的組織方式和檔案結構,這對于新加入的開發人員或用戶來說尤為重要,他們可以迅速找到所需的檔案和模塊,并理解它們之間的關系,
但是怎么去撰寫這個專案結構的樣式,卻很令人頭疼,
手動撰寫和更新這些結構可能會變得很繁瑣和容易出錯,因此,有自動生成專案結構文字樣式的工具或腳本可以極大地簡化這個程序,提高效率并減少錯誤,
所以本文就是來解決這一痛點!!!
展示
應該沒有人不心動吧!!!
下面使用筆者的一個 PySide6/PyQT 開發的一個專案的專案結構來作展示,
一個Python寫的游戲輔助小工具,適用于 咸魚之王后臺掛機、滑鼠連擊等,
看以下動圖展示:
再來看下面的截圖

知識點

安裝依賴
- 免安裝,Python 內置
匯入模塊
import os
主要使用到了 os 模塊的幾個方法,如下(它們在處理檔案和目錄時非常有用,可以幫助你進行路徑操作和檔案系統操作):
使用這些函式可以更方便地處理檔案路徑和目錄操作,
- os.path.join 用于安全地連接路徑
- os.path.isdir 用于檢查路徑是否為目錄
- os.path.basename 用于提取路徑的最后一部分
- os.getcwd 用于獲取當前作業目錄,

為什么是自動化構建專案結構樣式
基于以下的好處和作用,讀者朋友又有什么理由會拒絕這份寶藏代碼呢!!!
好處
通過使用自動生成專案結構文字樣式的工具,可以輕松地生成專案的目錄結構,并將其插入到 README.md 檔案中,好處如下:
- 節省時間和精力:手動撰寫和更新專案結構的文字樣式可能會很耗時且容易出錯,自動生成工具可以快速而準確地生成專案結構,節省了手動處理的時間和精力,
- 保持一致性:自動生成工具可以確保專案結構的文字樣式始終保持一致,無論專案如何演變和更新,都可以輕松地更新專案結構,以反映最新的變化,而無需手動更改 README.md 檔案,
- 易于維護:通過自動生成工具生成的專案結構文字樣式,可以更容易地進行維護和更新,當專案的檔案或目錄發生變化時,只需重新運行自動生成工具,即可更新 README.md 中的專案結構,而無需手動修改和調整,
- 提供清晰的專案導航:包含專案結構的文字樣式可以讓讀者快速了解專案的組織方式和檔案結構,這對于新加入的開發人員或用戶來說尤為重要,他們可以迅速找到所需的檔案和模塊,并理解它們之間的關系,
綜上所述,通過自動生成專案結構文字樣式,可以簡化撰寫 README.md 的程序,提高檔案的一致性和可維護性,并為專案的使用者提供清晰的導航和理解,這樣的工具可以幫助開發者更專注于專案的開發和功能實作,而不必過多關注檔案的細節和更新,
作用
自動化構建專案結構樣式在 Python 專案中具有以下作用:
- 專案檔案:生成專案結構的文字樣式可以作為專案檔案的一部分,提供專案的概覽和檔案組織結構的資訊,它可以幫助新加入的開發人員快速了解專案的組織和檔案分布,
- 代碼說明:專案結構文字樣式可以與代碼注釋一起使用,對各個模塊、包和檔案進行說明,這有助于其他開發人員更好地理解代碼的組織方式,快速找到所需的檔案和模塊,
- 專案展示:在專案演示或展示的程序中,使用專案結構文字樣式可以直觀地展示專案的檔案和檔案夾結構,這樣可以幫助觀眾更好地理解專案的組織方式,并對專案的規模和復雜度有一個直觀的認識,
總之,生成專案結構的文字樣式可以在專案檔案、代碼說明和專案展示中提供清晰的專案結構資訊,幫助開發人員更好地理解和使用專案,
代碼
遞回地遍歷指定目錄下的檔案和檔案夾,并按照特定的格式輸出它們的結構,
# -*- coding: utf-8 -*- # @Author : Frica01 # @Time : 2023-06-22 0:00 # @Name : project_structure_generator.py import os # 需要排除的檔案夾串列 exclude_folders = ['.git', '.idea', '.vscode', 'venv', '__pycache__', 'project_structure_generator.py'] def generate_project_structure(directory, indent='', is_last=False, is_root=False, output_file=None): """ 生成專案結構的文字樣式 Args: directory (str): 目錄路徑 indent (str): 縮進字串 is_last (bool): 是否是最后一個元素 is_root (bool): 是否是根目錄 output_file (file): 輸出檔案物件 Returns: None """ # 獲取目錄中的檔案和檔案夾串列,并按照一定的規則排序 items = sorted(os.listdir(directory), key=lambda x: (not os.path.isdir(os.path.join(directory, x)), x != '__init__.py', x)) num_items = len(items) if is_root: # 根目錄名稱 output_file.write(f"{os.path.basename(os.getcwd())}/\n") for i, item in enumerate(items): if item in exclude_folders: continue item_path = os.path.join(directory, item) is_item_last = i == num_items - 1 if os.path.isdir(item_path): # 如果是目錄,則添加目錄標記并遞回生成目錄結構 marker = '└── ' if is_item_last else '├── ' output_file.write(f"{indent}{marker}{item}/\n") new_indent = indent + (' ' if is_last else '│ ') generate_project_structure(item_path, new_indent, is_item_last, output_file=output_file) else: # 如果是檔案,則添加檔案標記 marker = '└── ' if is_item_last else '├── ' output_file.write(f"{indent}{marker}{item}\n") if __name__ == '__main__': # 打開要寫入的檔案 with open('project_structure.txt', 'w') as file: # 生成專案結構并寫入檔案 generate_project_structure('.', is_root=True, output_file=file) print("目錄結構已寫入檔案 project_structure.txt")
結語
在專案開發程序中,一個良好的專案結構對于團隊的協作和代碼的可維護性起著重要作用,通過使用自動生成專案結構文字樣式的工具,如我們在代碼中實現的 project_structure_generator.py,我們可以輕松地生成專案結構的可視化表示,并將其整理為一個文本檔案,這個工具不僅節省了手動撰寫專案結構的麻煩,還確保了結構的一致性和準確性,
號外

7 月 7 日,華為開發者大會 2023 (Cloud) 將拉開帷幕,并將在國內 30 多個城市、海外 10 多個國家開設分會場,誠邀您參加這場不容錯過的年度開發者盛會,讓我們一起開啟探索之旅!
我們將攜手開發者、客戶、合作伙伴,為您呈現華為云系列產品服務與豐富的創新實踐,并與您探討 AI、大資料、資料庫、PaaS、aPaaS、媒體服務、云原生、安全、物聯網、區塊鏈、開源等技識訓題,展開全面深入的交流,
大會將匯聚全球科學家、行業領袖、技術專家、社區大咖,開設 200 多場開發者專題活動,為全球開發者提供面對面交流與合作的機會,共同探討技術創新和業務發展,
大會官網:https://developer.huaweicloud.com/HDC.Cloud2023.html
參會購票:https://www.vmall.com/product/10086352254099.html?cid= 211761
點擊參與開發者社區活動,觀賞技術大咖秀、玩轉技術夢工廠,有機會贏取4000元開發者禮包!
歡迎關注 “華為云開發者聯盟” 公眾號,獲取大會議程、精彩活動和前沿干貨,
點擊關注,第一時間了解華為云新鮮技術~
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/556099.html
標籤:Python
上一篇:執行緒池
下一篇:返回列表