zoukankan      html  css  js  c++  java
  • 栈模拟递归遍历目录(深度遍历)

    import os
    def getALLDirDE(path):
        stack = []#空栈
        stack.append(path)#压栈  如先压进一个栈 a 其目录下有b c 深度遍历  append方法用于在列表末尾添加新的对象 即压入 与之对应的是pop。
    
        while len(stack) != 0:#处理栈
            dirPath = stack.pop()#pop() 函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。
            fileList = os.listdir(dirPath)#os.listdir(path) 查看路径里的文件和目录
    
            #处理文件,如果是普通文件则打印,如果是目录则将该目录地址压栈
            for fileName in fileList:
                fileAbsPath = os.path.join(dirPath,fileName)
                if os.path.isdir(fileAbsPath):#判断是否是目录
                    print("目录" + fileName)
                    stack.append(fileAbsPath)#如果是目录 调用函数 将拼接好的新路径压栈运行程序
                else:
                    print("普通文件:" + fileName)#若不是目录 即是普通文件 则打印出来
    
    getALLDirDE(r"C:Users23678Desktop超星智慧树网课助手浏览器版V1.1.0")
    #r的作用是转成原始字符串 不用转义字符了

    思路简图

    画的有点丑,不要嫌弃 (~ ̄▽ ̄)~

    目录遍历

    写爬虫时会应用到

  • 相关阅读:
    *** 82 删除排序链表中的重复元素II
    83 删除排序链表中的重复元素
    61 旋转链表
    ASP.NET MVC3 ModelState.IsValid为false的问题
    ServletContext
    ServletConfig
    Servlet线程安全
    Servlet的一些细节(2)
    Servlet的一些细节(1)
    Servlet的接口实现类
  • 原文地址:https://www.cnblogs.com/FSHOU/p/12331497.html
Copyright © 2011-2022 走看看