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内置数据类型详解
Aug 18 Python
python 接口_从协议到抽象基类详解
Aug 24 Python
python递归函数绘制分形树的方法
Jun 22 Python
python异步实现定时任务和周期任务的方法
Jun 29 Python
详解利用python+opencv识别图片中的圆形(霍夫变换)
Jul 01 Python
python实现ip代理池功能示例
Jul 05 Python
python 三元运算符使用解析
Sep 16 Python
numpy.linalg.eig() 计算矩阵特征向量方式
Nov 29 Python
Python生成个性签名图片获取GUI过程解析
Dec 16 Python
python  ceiling divide 除法向上取整(或小数向上取整)的实例
Dec 27 Python
一些关于python 装饰器的个人理解
Aug 31 Python
django如何自定义manage.py管理命令
Apr 27 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 文件上传全攻略
2010/04/28 PHP
php实现约瑟夫问题的方法小结
2015/03/23 PHP
关于Yii2框架跑脚本时内存泄漏问题的分析与解决
2019/12/01 PHP
PHP解密支付宝小程序的加密数据、手机号的示例代码
2021/02/26 PHP
JS是否可以跨文件同时控制多个iframe页面的应用技巧
2007/12/16 Javascript
jquery动态调整div大小使其宽度始终为浏览器宽度
2014/06/06 Javascript
javascript中的遍历for in 以及with的用法
2014/12/22 Javascript
纯javascript实现图片延时加载方法
2015/08/21 Javascript
基于HTML+CSS,jQuery编写的简易计算器后续(添加了键盘监听)
2016/01/05 Javascript
怎样判断jQuery当前元素是隐藏还是显示
2016/11/23 Javascript
js中的eval()函数把含有转义字符的字符串转换成Object对象的方法
2016/12/02 Javascript
详解nodejs 文本操作模块-fs模块(四)
2016/12/22 NodeJs
javascript验证香港身份证的格式或真实性
2017/02/07 Javascript
推荐三款日期选择插件(My97DatePicker、jquery.datepicker、Mobiscroll)
2017/04/21 jQuery
vue打包后显示空白正确处理方法
2017/11/01 Javascript
详解Vue 全局引入bass.scss 处理方案
2018/03/26 Javascript
JavaScript实现数字前补“0”的五种方法示例
2019/01/03 Javascript
详解javascript replace高级用法
2019/02/17 Javascript
vue实现虚拟列表功能的代码
2020/07/28 Javascript
Vue自定义表单内容检查rules实例
2020/10/30 Javascript
python 动态获取当前运行的类名和函数名的方法
2014/04/15 Python
给Python的Django框架下搭建的BLOG添加RSS功能的教程
2015/04/08 Python
Python的面向对象编程方式学习笔记
2016/07/12 Python
python列表的增删改查实例代码
2018/01/30 Python
Django 解决上传文件时,request.FILES为空的问题
2020/05/20 Python
兰蔻俄罗斯官方网站:Lancome俄罗斯
2019/12/09 全球购物
struct和class的区别
2015/11/20 面试题
迎新晚会邀请函
2014/02/01 职场文书
安全检查管理制度
2014/02/02 职场文书
大学生职业生涯规划书
2014/03/14 职场文书
小学作文评语大全
2014/04/21 职场文书
员工生日活动方案
2014/08/24 职场文书
学生会副主席竞选稿
2015/11/19 职场文书
python绘图subplots函数使用模板的示例代码
2021/04/30 Python
Python爬虫入门案例之爬取去哪儿旅游景点攻略以及可视化分析
2021/10/16 Python
victoriaMetrics库布隆过滤器初始化及使用详解
2022/04/05 Golang