栈 利用栈遍历目录

"""
栈 先进后出
stack = []   空栈

"""


# import os
# #用栈模拟递归遍历目录
# def stackDir(path): #path='d:\hello'
#     stack = [] #空栈
#     stack.append(path)  #把路径放到栈里 ["d:\hello"]
#     while len(stack)!=0:
#         #出栈
#         pa = stack.pop() #pa = 'd:\hello\a\a_01'   stack=[]
#         #根据路径得到当前目录下所有的内容
#         fileList = os.listdir(pa)#fileList=[]
#         for fileName in fileList:
#             #拼接新路径
#             newP = os.path.join(pa,fileName) #newP='d:\hello\a\a_01'
#             if os.path.isdir(newP):
#                 print("目录:"+fileName)
#                 stack.append(newP)
#             else:
#                 print("普通文件:"+fileName)

# stackDir("D:\QQ")
"""
目录:a
目录:b
普通文件:word.txt
目录:b_01
普通文件:b_word_01.txt
目录:a_01
普通文件:a_word_01.txt
"""
#
# import os
# def stackDir(path):
#     stack = []
#     stack.append(path)
#     while len(stack) != 0:
#         fileName = stack.pop()
#         newlist = os.listdir(fileName)
#         for dirpath in newlist:
#             newPath = os.path.join(fileName, dirpath)
#             if os.path.isdir(newPath):
#                 print("目录", newPath)
#                 stack.append(newPath)
#             else:
#                 print("文件", newPath)
#
# stackDir("D:\QQ")


import os

def show(path):
    list = os.listdir(path)
    for listpath in list:
        newPath = os.path.join(path, listpath)
        if os.path.isdir(newPath):
            print("目录:", newPath)
            show(newPath)
        else:
            print("文件:", newPath)

show("D:\QQ")


猜你喜欢

转载自blog.csdn.net/qq_42806416/article/details/81367951