python建立目錄樹 Python 生成目錄樹

2021-10-11 09:31:44 字數 2188 閱讀 7390

在寫一些文章時,尤其是一些技術文章或者教程,有時需要將目錄結構附在文中,最簡單粗暴的方法是自己手動寫,但是效率太低,今天就來介紹一下高效率、美觀的方法。

1、cmd生成目錄樹

在 windows 系統中,有乙個 cmd 指令可以生成目錄樹,該條指令是 "tree" 。

1.1 檢視幫助

使用 「win+r" 快捷鍵調出執行 對話方塊,然後輸入 」cmd「 回車開啟命令列視窗。可以在視窗中輸入 」tree /?" 檢視:

以圖形顯示驅動器或路徑的資料夾結構。

tree [drive:][path] [/f] [/a]

/f 顯示每個資料夾中檔案的名稱。

/a 使用 ascii 字元,而不使用擴充套件字元。

1.2 作用

從上述幫助文件中可以看出 tree 命令的作用是「以圖形顯示驅動器或路徑的資料夾結構」。

1.3 命令格式

如果我們只想在命令列視窗檢視 資料夾目錄結構,可以使用如下格式:

tree e:\programming\python\designpattern

輸出內容如下:

01_tree只列印資料夾結構

注意:如果路徑中含有空格,則路徑需要用雙引號包起來,例如tree "c:\program files" 。

上面的指令只能生成資料夾的目錄結構,並沒有顯示檔案,我們可以增加 /f 引數來顯示資料夾和檔案的目錄結構:

tree /f e:\programming\python\designpattern

這樣就ok了:

02_tree顯示資料夾和檔案結構

上述命令只是在控制台列印出來了,有時候會有儲存到檔案的需求,只需對上述命令稍作修改:

tree /f e:\programming\python\designpattern > dirtree.txt

命令執行之後,在命令列所在目錄下會生成乙個名為 「dirtree.txt」 的檔案,目錄結構已在其中。

2、python生成目錄樹

上述 cmd 方式雖然可以生成目錄樹,但是並不美觀,讓我們用 python 實現。

2.1 標準庫pathlib介紹

python有乙個標準檔案路徑處理庫 os.path ,從 python3.4 開始,python 又加入了乙個標準庫 pathlib ,該庫是跨平台的、物件導向的路徑操作庫。

path 類的引入:

from pathlib import path

建立 path 物件:

p = path('e:\programming\python\designpattern')

獲取 p 的路徑名稱:

print(p.name)

獲取 p 目錄下的所有檔案:

pit = p.iterdir() # 返回乙個迭代器,包含p下所有資料夾和檔案

判斷 p 是不是檔案:

print(p.is_file())

判斷 p 是不是目錄:

print(p.is_dir())

2.2 **實現

思路:給出乙個路徑,判斷是否為檔案,如果是,則字串拼接;否則,字串拼接並且遞迴查詢該目錄下的檔案。字串拼接的時候以縮進來顯示層次結構。

tree_str = ''

def generate_tree(pathname, n=0):

global tree_str

if pathname.is_file():

tree_str += ' |' * n + '-' * 4 + pathname.name + '\n'

elif pathname.is_dir():

tree_str += ' |' * n + '-' * 4 + \

str(pathname.relative_to(pathname.parent)) + '\\' + '\n'

for cp in pathname.iterdir():

generate_tree(cp, n + 1)

if __name__ == '__main__':

generate_tree(path.cwd())

print(tree_str)

輸出結果:

|----.ipynb_checkpoints\

| |----01_generate_tree-checkpoint.ipynb

|----01_generate_tree.ipynb

2.3 改進,顯示指定目錄

python樹函式 從表示式樹建立python函式

我假設你的表示式樹是由許多物件組成的,它們的型別對應於它是什麼樣的表示式。例如,or,equals,strings等,類似於 class orexpression def init self,left,right self.left left self.right right class equal...

python建立目錄樹 使用python生成目錄樹

這是乙個使用python生成檔案 目錄樹的程式,其中遇到乙個問題是 如何確定某個目錄下的某一檔案是最後乙個遍歷的檔案。因為最後乙個遍歷的檔案前應新增 非最後乙個檔案前新增 看了python的api文件沒有找到相關的系統函式。現在做法是 先統計出某個目錄下的檔案個數,在遍歷目錄時,當個數相等時,就可以...

python中如何建立包 如何建立python的包

包是模組的集合,更適合乙個專案。像很多的第三方知名的模組都是以包的形式存 簡單的包實現 自己做乙個ammd包,功能簡單的只有加減乘除等功能,加減在乙個模組matham裡,乘除位於另乙個模組裡mathmd。下面是matham模組的 def add x,y return x ydef minus x,y...