1. 用递归函数遍历目录:

import osdef getAllDir(path,sp=" "):# 得到当前目录下所有的文件filesList = os.listdir(path)# 处理每一个文件sp += "  "for fileName in filesList:# 判断是否是路径(绝对路径)fileAbsPath = os.path.join(path,fileName)if os.path.isdir(fileAbsPath):print(sp + "目录:",fileName)# 递归调用getAllDir(fileAbsPath,sp)else:print(sp + "普通文",fileName)getAllDir(r"G:\博易大师5五档行情-中信建投期货(CTP主席)")

2. 栈模拟递归遍历目录(深度遍历)

import osdef getAllDirDE(path):stack = []stack.append(path) # 压栈内容:G:\博易大师5五档行情-中信建投期货(CTP主席)# print(path)while len(stack) != 0: # 处理栈,当栈为空的时候结束循环# 从栈里取出数据(取出的是上面那个路径)dirPath = stack.pop()# print(dirPath)filesList = os.listdir(dirPath) # 把弹栈的那个目录拿出来# print(filesList) # 观察应该是绝对路径for fileName in filesList: # 得到目录下每一个文件(有可能是文件,有可能是目录)# 处理如果每一个文件,如果是普通文件则打印出来,如果是目录就讲该路径# 再压入栈内。fileAbsPath = os.path.join(dirPath,fileName)if os.path.isdir(fileAbsPath):# 如果是目录打印并压栈print("目录:" , fileName)stack.append(fileAbsPath)else:# 如果是文件就打印目录print(" 文件:",fileName)getAllDirDE(r"G:\博易大师5五档行情-中信建投期货(CTP主席)")

3. 队列模拟递归遍历目录(广度遍历)

import os
import collectionsdef getAllDirQU(path):# 初始空队列queue = collections.deque()# 进队列queue.append(path)while len(queue) != 0:# 出队数据dirPath = queue.popleft()# 找出所有文件filesList = os.listdir(dirPath)for fileName in filesList:# 绝对路径fileAbsPath = os.path.join(dirPath,fileName)# 判断是否是目录,是目录就进队,不是就打印if os.path.isdir(fileAbsPath):print("目录: " + fileName)queue.append(fileAbsPath)else:print(" 普通文件:" + fileName)getAllDirQU(r"G:\博易大师5五档行情-中信建投期货(CTP主席)")

4. 备注:深度遍历和广度遍历

  4.1 深度遍历(depthFirstSearch - DFS)

    由起始点起始点开始,沿着一条道路一直走,当走到走不动的时候,再回来走一条可以走的通的道路,然后再继续往下走,知道走不到,再回来。

  4.2 广度遍历(broadFirstSearch - BFS)

    广度遍历是按照层来进行处理定点,举例开始点最近的那些点首先被访问,而最远的那些定点则最后被访问。

  我们通过图示来进行讲解会更加的直观:

  

  

转载于:https://www.cnblogs.com/noah0532/p/10853358.html

Python笔记_第二篇_面向过程_第二部分_4.常用模块的简单使用_操作系统模块(os)和队列模块(collections)...相关推荐

  1. Spotify敏捷模式详解三部曲第二篇:研发过程

    本文转自:Scrum 中文网 引言 在本系列文章的第一篇,我们介绍了Spotify的敏捷研发团队,以及它独特的组织架构.Spotify的研发团队采用的是一种非常独特的组织架构,如下图所示: 整个研发组 ...

  2. python语言的计算生态规模有多大_【单选题】Python 语言的一个重要特点是它有较多的计算生态,简单理解为第三方提供的可用编程模块 / 函数库 / 组件,这个规模有多大?...

    [单选题]Python 语言的一个重要特点是它有较多的计算生态,简单理解为第三方提供的可用编程模块 / 函数库 / 组件,这个规模有多大? 更多相关问题 [问答题,简答题] 顾客关系管理系统如何给企业 ...

  3. 第二篇第一章概述及第二章生产和储存物品的火灾危险性分类 重点在于表格...

    2019/1/4 [录播]2018一消精华班-实务-一级消防工程师-环球网校 http://v.edu24ol.com/?type=lesson&id=178923&gid=16157 ...

  4. 天正建筑lisp编程接口_编程思想|面向过程的结构化、面向对象的抽象化、泛型编程...

    程序总是因而解决问题而生,如何组合描述数据.算法的模块,就形成了各种编程思路的分类. 1 控制结构语句产生之前 20世纪60年代初,在提倡通过规则让读写程序更轻松的时代潮流中,结构化程序设计应运而生. ...

  5. python第四周迭代器生成器序列化面向过程递归

    第一节装饰器复习和知识储备------------ 第一节装饰器复习和知识储备------------ def wrapper(*args,**kwargs):index(*args,**kwargs ...

  6. python语言的特点有没有面向过程_Python 入门基础之面向对象过程-面向过程概述...

    首先说明一下,python既是面向过程的语言,也是面向对象的语言,所以说python很灵活. 一句话简单说一下什么叫做面向对象编程OOP(object-oriented programing):面向对 ...

  7. 敏捷开发系列学习总结(14)——Spotify敏捷模式详解三部曲第二篇:研发过程

    分享一个大神的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到人工智能的队伍中来!点击浏览教程 摘要 在本系列文章的第一篇,我们介绍了Spotify的敏捷研发团队,以及它独特的组织 ...

  8. python语言的特点有没有面向过程_Python语言的特点有哪些?

    Python语言的特点有哪些? 发布时间:2020-08-06 12:04:37 来源:51CTO 阅读:81 作者:老男孩IT 随着近几年的市场发展,Python发展可谓是一路高歌的,成为了近几年非 ...

  9. Python 面向对象编程(一) —— 面向过程和面向对象的区别

    [无限嚣张(菜菜)]:hello您好,我是菜菜,很高兴您能来访我的博客,我是一名爱好编程学习研究的菜菜,每天分享自己的学习,想法,博客来源与自己的学习项目以及编程中遇到问题的总结. 座右铭:尽人事,听 ...

最新文章

  1. windows不能查询组策略对象列表 解决方案
  2. vue展示日历 考勤展示_VUE实战—菜单栏商品展示数据交互(8)
  3. 实验室服务器18.04LTS+RTX2080Ti+CUDA10.0+CUDAnn7.4+tf1.13装机之路
  4. 【数据竞赛】Kaggle知识点:树模型特征Embedding
  5. C# 获取枚举的描述属性
  6. 华为云一站式AI开发平台ModelArts获2019全球智博会金奖
  7. ubuntu 安装、卸载重装mysql 8.0
  8. 2022G2电站锅炉司炉考试试题及答案
  9. 百度CTO李一男:未来五年电子商务是关注重点
  10. html 自动获取屏幕分辨率,HTML5教程 如何获取手机屏幕分辨率和浏览器分辨率
  11. 【PytorchLearning】构建自己的数据集
  12. PHP 垃圾回收机制
  13. 从身边的移动支付说起
  14. 几款笔记软件的优缺点
  15. P2002 消息扩散(图论 Tarjan缩点)
  16. PATA1066题解
  17. 夕阳西下,小卤蛋和妲己姐姐竟然手牵手讨论Spring...
  18. 全国计算机等级考试python试题_全国计算机等级考试二级Python真题及解析(5)
  19. 白盒测试:语句覆盖、条件覆盖、判定覆盖、条件-判定覆盖、组合覆盖、路径覆盖...
  20. Mapper层注解讲解

热门文章

  1. keras-nightly 导入包报错 cannot import name ‘Adam‘ from ‘keras.optimizers‘
  2. C语言编译过程中*.i *.s *.o *.out 等文件是什么?
  3. 2022年湖北省乡村振兴科技创新示范基地申报条件以及流程汇总
  4. 共享网络电子商刊(iebook)营销盛宴
  5. 爱情八十八课,对抗消磨
  6. GtkGrid gtk_grid_attach
  7. 电脑装的是office2013,右键新建却是2007,或者右键新建菜单中没有excel2013问题解决办法。
  8. Kafka Consumer位移(Offset)提交——解决Consumer重复消费和消息丢失问题
  9. python 实现链家网房源数据信息的爬取
  10. 27、用户操作srv、web服务实现