代码不长,并且加了很多注释,就不再多说明了。

from os import listdir

from os.path import join, isfile, isdir

def listDirWidthFirst(directory):

'''广度优先遍历文件夹'''

#使用列表模拟双端队列,效率稍微受影响,不过关系不大

dirs = [directory]

#如果还有没遍历过的文件夹,继续循环

while dirs:

#遍历还没遍历过的第一项

current = dirs.pop(0)

#遍历该文件夹

#如果是文件就直接输出显示

#如果是文件夹,输出显示后,标记为待遍历项

for subPath in listdir(current):

path = join(current, subPath)

if isfile(path):

print(path)

elif isdir(path):

print(path)

dirs.append(path)

def listDirDepthFirst(directory):

'''深度优先遍历文件夹'''

#遍历文件夹

#如果是文件就直接输出

#如果是文件夹,就输出显示,然后递归遍历该文件夹

for subPath in listdir(directory):

path = join(directory, subPath)

if isfile(path):

print(path)

elif isdir(path):

print(path)

listDirDepthFirst(path)

directory = r'F:\test'

listDirWidthFirst(directory)

print('='*30)

listDirDepthFirst(directory)

由于手机屏幕大小不同,很难有统一的排版方式,考虑了一下,对于较短的代码,我把截图一起发上来,这样比较好对照,尤其是代码的缩进。

代码运行结果类似于下面图中的样子:

Python使用广度优先和深度优先两种方法遍历目录树相关推荐

  1. python文字教程-Python在图片中添加文字的两种方法

    本文主要介绍的是利用Python在图片中添加文字的两种方法,下面分享处理供大家参考学习,下来要看看吧 一.使用OpenCV 在图片中添加文字看上去很简单,但是如果是利用OpenCV来做却很麻烦.Ope ...

  2. python自带的shell是什么-python中执行shell的两种方法总结

    一.使用python内置commands模块执行shell commands对Python的os.popen()进行了封装,使用SHELL命令字符串作为其参数,返回命令的结果数据以及命令执行的状态: ...

  3. python怎么模拟浏览器交互_干货分享:python爬虫模拟浏览器的两种方法实例分析(赶紧收藏)...

    今天为大家带来的内容是:干货分享:python爬虫模拟浏览器的两种方法实例分析(赶紧收藏) 文章主要介绍了python爬虫模拟浏览器的两种方法,结合实例形式分析了Python爬虫模拟浏览器的两种常见操 ...

  4. 站长在线Python精讲:在Python中格式化字符串的两种方法详解

    欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是<在Python中格式化字符串的两种方法详解>.本知识点主要内容有:使用%操作符格式化字符串和使用format()方法格式化字 ...

  5. python 手动安装包的两种方法

    python 手动安装包的两种方法 对于 .tar.gz 的包来说 解压缩文件 aaaxxxx-1.0.1.tar.gz 移动到压缩文件所在目录 使用tar -zxvf aaaxxxx-1.0.1.t ...

  6. 在word文档中如何自动生成目录,两种方法制作目录,总有一种适合你

    在word文档中如何自动生成目录,两种方法制作目录,总有一种适合你 目录 在word文档中如何自动生成目录,两种方法制作目录,总有一种适合你 1.文章中的标题较多,每个单独调整格式太费劲,这里我们用一 ...

  7. python list列表排序的两种方法及实例讲解

    对List进行排序,Python提供了两个方法 方法1.用List的内建函数list.sort进行排序 list.sort(func=None, key=None, reverse=False) Py ...

  8. python 修改文件创建时间_python 两种方法修改文件的创建时间、修改时间、访问时间...

    突如其来想知道一下 python 如何修改文件的属性(创建.修改.访问时间),于是就去网上搜集了可行方案,也就有了这篇博客 方案一 from win32file import CreateFile, ...

  9. python生成requirements.txt的两种方法

    python项目如何在另一个环境上重新构建项目所需要的运行环境依赖包? 使用的时候边记载是个很麻烦的事情,总会出现遗漏的包的问题,这个时候手动安装也很麻烦,不能确定代码报错的需要安装的包是什么版本.这 ...

最新文章

  1. 屡现黑马!2021THE泰晤士高等教育学科排名发布!斯坦福成为最大赢家,清华、北大强势逆袭!...
  2. Oracle-多表连接的三种方式解读
  3. 安装pipenv搭建虚拟环境做flask
  4. QT的QDomDocument类的使用
  5. 经过路由无法找到计算机,电脑无法启动服务提示系统找不到指定的路径(图)
  6. Azure手把手系列 3:把IT的钱花在刀刃上
  7. window+VS+OpenCV编译libfacedetection库进行人脸检测
  8. HDU 1301 - Jungle Roads( Prim求最小生成树 )
  9. java第五周课后作业
  10. php调用第三方接口代码,PHP接口编程——调用第三方接口获取天气
  11. HTTP Status 500 - /dologin.jsp (line: 27, column: 3) Expecting jsp:param standard action with nam
  12. hive explain 源码分析
  13. 数据结构之一元多项式
  14. Python一步实现静态图片动态化
  15. 秘密打印机涉密计算机之间,涉密打印机与涉密计算机之间应该怎么连接
  16. 微信小程序学习日记7
  17. 【建议搜藏】Spring+SpringMVC+MyBatis简易版Boss直聘系统
  18. 老师教我们用计算机画画就是彩虹,一年级上课文
  19. 项目乱弹琴 之 用户就是上帝
  20. html一键使网页字体变大,网页字体变大了怎么办

热门文章

  1. fruncm server sql 无法生成 线程_SQL Server无法生成FRunCM线程的解决方法
  2. phpcms9.6 ueditor_Phpcms v9深度整合百度编辑器Ueditor
  3. dense sift matlab,一个 Dense SIFT 算法的 matlab 实现 | 学步园
  4. 莒南机器人_莒南五小学子 在2020年世界FTF青少年无人机大赛中 荣获佳绩
  5. linux虚拟化管理平台,linux虚拟化管理
  6. 百度搜索引擎优化指南_百度SEO优化和其他搜索引擎优化用什么不同的地方
  7. qq语音按住ctrl就静音怎么解决_干货!PS超实用去水印方法汇总(图文教程),可解决99%水印烦恼...
  8. 数组深拷贝_JavaScript之深浅拷贝
  9. 用随机投点法计算pi值matlab,用蒙特卡洛法求圆周率PI的近似值,其算法如下:使用随机函数Rnd,随机生成两个[0,1)之间的随机数,由此构成一个投点坐标(x,y),然后根据x...
  10. Ubuntu上安装Maven3