1. 程式人生 > >python中用棧的方式模擬遞歸遍歷目錄

python中用棧的方式模擬遞歸遍歷目錄

數據 rpath 所有 def list pat tac 打印 stack

#用棧的方式模擬遞歸遍歷目錄
import os
def getAllDirDE(path):
stack=[]#定義空棧
stack.sppend(path)#給棧賦值當前文件路徑


#處理棧,當棧為空時結束循環
while len(stack)==0:
#從棧裏取出數據(絕對路徑)
dirPath=stack.pop()
#目錄下所有文件
filesList=os.listdir(dirPath)
#處理每一個文件,如果是普通文件則打印出來,如果是目錄則
# 將目錄的地址壓棧
for fileName in filesList:
fileAbsPath=os.path.join(dirPath,fileName)
if os.path.isdir(fileAbsPath):#如果得到的是路徑則向下執行
#如果是目錄則壓棧
print("目錄:"+fileName)
stack.append(fileAbsPath)
else:
#打印普通文件
print("普通:"+fileName)

python中用棧的方式模擬遞歸遍歷目錄