天天看點

周遊輸出某路徑下的所有檔案和檔案夾

怎麼周遊輸出某路徑下的所有檔案和檔案夾?

這個問題和“指定一個節點,輸出以這個節點作為根節點的這棵樹的所有子節點”一樣。

遞歸可以實作

如果是葉子節點(檔案)了,就輸出這個葉子節點的名稱,傳回。

否則,輸出這個節點的名稱(檔案夾),并以這個結點再次作為根節點,周遊輸出它的所有子節點。

代碼如下:

import os


def traverse(f):
    # 傳回路徑下的所有檔案名(而這些檔案名不含路徑)
    fs = os.listdir(f)
    for f1 in fs:
        # 改成絕對路徑
        tmp_path = os.path.join(f, f1)
        # 判斷是否是檔案夾(或檔案)
        if not os.path.isdir(tmp_path):
            print('檔案: %s' % tmp_path)
        else:
            print('檔案夾:%s' % tmp_path)
            # 遞歸查找
            traverse(tmp_path)


# 要查找的根路徑
path = 'E:/spider'
# 調用函數
traverse(path)