Python实现的栈、队列、文件目录遍历操作示例


Posted in Python onMay 06, 2019

本文实例讲述了Python实现的栈、队列、文件目录遍历操作。分享给大家供大家参考,具体如下:

一、 栈与队列

1、 栈 stack

特点:先进先出[可以抽象成竹筒中的豆子,先进去的后出来] 后来者居上

mystack = []
#压栈[向栈中存数据]
mystack.append(1)
print(mystack)
mystack.append(2)
print(mystack)
mystack.append(3)
print(mystack)
#出栈[从栈中取数据]
mystack.pop()
print(mystack)
mystack.pop()
print(mystack)

2、 队列 queue

特点: 先进先出[可以抽象成一个平放的水管]

#导入数据结构的集合
import collections
queue = collections.deque([1, 2, 3, 4, 5])
print(queue)
#入队[存数据]
queue.append(8)
print(queue)
queue.append(9)
print(queue)
#取数据
print(queue.popleft())
print(queue)

二、 目录遍历

1、 递归遍历目录

import os
def diguigetAllDir(path,suojin):
  # 如果文件夹中只有文件则返回
  if os.path.isfile(path):
    return
  # 如果为空文件夹则返回
  list1 = os.listdir(path)
  if len(list1) == 0:
    return
  # 遍历list1列表
  for item in list1:
    print(' '*suojin,'%s'%item)
    path1 = os.path.join(path,item)
    if os.path.isdir(path1):
      diguigetAllDir(path1, suojin + 4)
# 遍历当前目录
diguigetAllDir(os.getcwd(),0)

2、 栈模拟递归遍历目录

也称为深度遍历

import os
def stackGetAllDir(path):
  if not os.listdir(path):
    return
  liststack = [path]
  listsuojin = [0]
  print(liststack)
  while len(liststack) != 0:
    path = liststack.pop() #路径出栈
    suojin = listsuojin.pop()  #缩进空格个数出栈
    print(' ' * suojin, os.path.basename(path))
    if os.path.isdir(path):
      for i in os.listdir(path): #遍历路径下的全部文件
        listsuojin.append(suojin +4)
        liststack.append(os.path.join(path,i)) #文件名拼接成相对路径后入栈
# 遍历当前目录
stackGetAllDir(os.getcwd())

3、 队列模拟递归遍历目录

也被称为广度遍历

import os
import collections
def queueGetAllDir(path=" "):
  if not os.listdir(path):
    return
  queue = collections.deque()
  queue.append(path)
  while len(queue) != 0:
    filePath = queue.popleft()
    fileList = os.listdir(filePath) #遍历filePath路径下的目录
    for filename in fileList:
      absFilePath = os.path.join(filePath,filename) #路径拼接
      if os.path.isdir(absFilePath):
        print("目录:",filename)
        queue.append(absFilePath)
      else:
        print("文件:",filename)
# 遍历当前目录
queueGetAllDir(os.getcwd())

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python自定义解析简单xml格式文件的方法
May 11 Python
Python中的深拷贝和浅拷贝详解
Jun 03 Python
Python的Django框架安装全攻略
Jul 15 Python
使用python检测主机存活端口及检查存活主机
Oct 12 Python
详解Python中的Numpy、SciPy、MatPlotLib安装与配置
Nov 17 Python
Python实现pdf文档转txt的方法示例
Jan 19 Python
python 实现list或string按指定分段
Dec 25 Python
利用PyQt5+Matplotlib 绘制静态/动态图的实现代码
Jul 13 Python
使用OpenCV实现人脸图像卡通化的示例代码
Jan 15 Python
快速一键生成Python爬虫请求头
Mar 04 Python
python3读取文件指定行的三种方法
May 24 Python
解决Pytorch半精度浮点型网络训练的问题
May 24 Python
Python两台电脑实现TCP通信的方法示例
May 06 #Python
python3利用Socket实现通信的方法示例
May 06 #Python
75条笑死人的知乎神回复,用60行代码就爬完了
May 06 #Python
Python Flask 搭建微信小程序后台详解
May 06 #Python
Python玩转PDF的各种骚操作
May 06 #Python
使用Python和Prometheus跟踪天气的使用方法
May 06 #Python
Python中常用的8种字符串操作方法
May 06 #Python
You might like
PHP写入WRITE编码为UTF8的文件的实现代码
2008/07/07 PHP
PHP与SQL注入攻击防范小技巧
2011/09/16 PHP
php fsockopen中多线程问题的解决办法[翻译]
2011/11/09 PHP
php文本转图片自动换行的方法
2013/03/13 PHP
PHP比较运算符的详细介绍
2015/09/29 PHP
基于命令行执行带参数的php脚本并取得参数的方法
2016/01/25 PHP
yii2多图上传组件的使用教程
2018/05/10 PHP
JavaScript返回当前会话cookie全部键值对照的方法
2015/04/03 Javascript
使用JavaScript脚本无法直接改变Asp.net中Checkbox控件的Enable属性的解决方法
2015/09/16 Javascript
javascript中checkbox使用方法实例演示
2015/11/19 Javascript
js中使用使用原型(prototype)定义方法的好处详解
2016/07/04 Javascript
jQuery为动态生成的select元素添加事件的方法
2016/08/29 Javascript
jQuery实现右键菜单、遮罩等效果代码
2016/09/27 Javascript
jquery实现超简单的瀑布流布局【推荐】
2017/03/08 Javascript
H5实现中奖记录逐行滚动切换效果
2017/03/13 Javascript
vue 组件中slot插口的具体用法
2018/04/03 Javascript
vue element动态渲染、移除表单并添加验证的实现
2019/01/16 Javascript
angular 实现同步验证器跨字段验证的方法
2019/04/11 Javascript
jQuery实现全选、反选和不选功能的方法详解
2019/12/04 jQuery
神经网络理论基础及Python实现详解
2017/12/15 Python
django2笔记之路由path语法的实现
2019/07/17 Python
Python3 venv搭建轻量级虚拟环境的步骤(图文)
2019/08/09 Python
解决Atom安装Hydrogen无法运行python3的问题
2019/08/28 Python
python如何实现DES加密
2020/09/21 Python
java字符串格式化输出实例讲解
2021/01/06 Python
css3 clip实现圆环进度条的示例代码
2018/02/07 HTML / CSS
美国庭院家具购物网站:AlphaMarts
2019/04/10 全球购物
Amara德国:家居饰品、设计师品牌和豪华礼品
2019/05/20 全球购物
外贸业务员的岗位职责
2013/11/23 职场文书
读群众路线心得体会
2014/03/07 职场文书
公务员年终个人总结
2015/02/12 职场文书
节约用水广告语60条
2019/11/14 职场文书
Nginx配置SSL证书出错解决方案
2021/03/31 Servers
python requests模块的使用示例
2021/04/07 Python
Python绘制分类图的方法
2021/04/20 Python
MySQL 亿级数据导入导出及迁移笔记
2021/06/18 MySQL