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的作用是转成原始字符串 不用转义字符了

    思路简图

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

    目录遍历

    写爬虫时会应用到

  • 相关阅读:
    jsp 页面获取当前路径
    html5 页面音频
    微信关于网页授权access_token和普通access_token的区别
    Texlive source
    vscode 快捷键
    vscode setting
    vscode extension 插件管理
    what
    linux manual
    java tool type
  • 原文地址:https://www.cnblogs.com/FSHOU/p/12331497.html
Copyright © 2011-2022 走看看