怎麼周遊輸出某路徑下的所有檔案和檔案夾?
這個問題和“指定一個節點,輸出以這個節點作為根節點的這棵樹的所有子節點”一樣。
遞歸可以實作
如果是葉子節點(檔案)了,就輸出這個葉子節點的名稱,傳回。
否則,輸出這個節點的名稱(檔案夾),并以這個結點再次作為根節點,周遊輸出它的所有子節點。
代碼如下:
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)