python中用队列模拟递归(广度遍历)

用队列模拟递归(广度遍历)
import os
import collections

def getAllDirQU(path):
queue=collections.deque()
#进队
queue.append(path)

while len(queue)!=0:
#出队数据
dirPath=queue.popleft()
#找出dirPath所有的文件
filesList=os.listdir(dirPath)

for fileName in filesList:
#绝对路径
fileAbsPath=os.path.join(dirPath,fileName)
#判断是否是目录,是目录就进队,不是就打印
if os.path.isdir(fileAbsPath):
           queue.append(fileAbsPath)

print("目录:"+fileName)
else:
print("普通文件:"+fileName)

getAllDirQU(r"D:\f\Python\pycharm\234")
posted @ 2019-02-27 23:06  飞飞阿  阅读(177)  评论(0编辑  收藏  举报