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的作用是转成原始字符串 不用转义字符了
思路简图
画的有点丑,不要嫌弃 (~ ̄▽ ̄)~
写爬虫时会应用到