
本篇內容我們將會分享三種方式來進行專案目錄的解析,分別為 :
- os
- pathlib
- pathlib 和 tree
使用 os 套件解析目錄
使用 Python os 套件來列出目錄下所有檔案和資料夾,我們將路徑設定為"." 表示當前的目錄:
import os
def list_files_and_folders(directory):
for root, dirs, files in os.walk(directory):
print(root)
for name in files:
print(name)
# 列出指定的目錄路徑,如果是當前目錄,則使用"."作為目錄路徑
directory = "."
list_files_and_folders(directory)

可以看出輸出的結果並沒有將父資料夾與子資料夾進行縮排的規劃,以至於專案目錄的分層不是很明確,接著改寫打印出來結果
import os
def list_files_and_folders(directory):
for root, dirs, files in os.walk(directory):
print(f"資料夾: {root}")
for name in files:
print(f" 檔案: {name}")
# 列出指定的目錄路徑,如果是當前目錄,則使用"."作為目錄路徑
directory = "."
list_files_and_folders(directory)

解析出來的專案目錄可以看出,會將資料夾與檔案類型分別描述出來,這樣的呈現方式會感覺比較凌亂,接著我們再使用不同的方法解析目錄。
使用 pathlib 套件解析目錄
我們使用 pathlib,來遞迴打印出指定目錄下所有的檔案和資料夾 :
from pathlib import Path
def list_files_and_folders(directory):
path = Path(directory)
for item in path.rglob("*"):
if item.is_file():
print(item)
elif item.is_dir():
print(item)
# 替換為您想列出的目錄路徑
directory = "."
list_files_and_folders(directory)

打印出來的結果會發現,如果遇到子資料夾,在呈現的時候,每遇到一個子資料夾內的檔案,就需要再將子資料夾的名稱顯示出來,在閱讀上也顯得較為複雜。
使用 pathlib 與 tree 套件解析目錄
我們想要更視覺化的呈現目錄的階層結構,所以使用 tree 套件來達到效果,tree 套件可以生成樹狀結構,可以直接打印出樹狀結構的目錄,首先需要安裝 tree 套件:
pip install treelib
安裝後,我們使用 pathlib 與 tree 生成樹狀結構:
from treelib import Tree, Node
from pathlib import Path
def create_tree(directory, tree=None):
# 如果尚未創建樹,創建根節點
if tree is None:
tree = Tree()
tree.create_node(directory, directory) # 根節點
path = Path(directory)
# 遍歷目錄中的每個項目
for item in path.iterdir():
# 為每個項目創建一個節點,並設置父節點
tree.create_node(item.name, item, parent=directory)
# 如果項目是目錄,則遞歸調用處理子目錄
if item.is_dir():
create_tree(item, tree=tree)
return tree
# 請替換為你想要創建樹的目錄路徑
directory = "." # 預設為當前目錄
# 創建目錄樹
tree = create_tree(directory)
# 使用 print 來顯示目錄樹
print(tree)

輸出的結果用樹的階層式進行呈現,所以閱讀起來更加的直觀,方便我們了解目錄當中所有檔案的位置,同時也有顯示出檔案的附檔名,利於我們分辨出不同的檔案類型。
選擇好用的目錄解析工具,能清楚的向其他人說明專案資料的檔案分布,希望每個人都有適合的專案目錄呈現工具,讓人一目瞭然,這也是身為軟體工程師十分重要的能力之一唷 !
