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实现二分查找算法实例
May 26 Python
python编程开发之日期操作实例分析
Nov 13 Python
Windows下Python使用Pandas模块操作Excel文件的教程
May 31 Python
python enumerate函数的使用方法总结
Nov 15 Python
python3 爬取图片的实例代码
Nov 06 Python
浅析Python 读取图像文件的性能对比
Mar 07 Python
python实现关闭第三方窗口的方法
Jun 28 Python
python pandas时序处理相关功能详解
Jul 03 Python
pandas的连接函数concat()函数的具体使用方法
Jul 09 Python
如何基于python操作excel并获取内容
Dec 24 Python
python GUI库图形界面开发之PyQt5工具栏控件QToolBar的详细使用方法与实例
Feb 28 Python
如何使用PyCharm引入需要使用的包的方法
Sep 22 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图像处理函数大全(推荐收藏)
2013/07/11 PHP
详解WordPress中用于合成数组的wp_parse_args()函数
2015/12/18 PHP
PHP基于socket实现的简单客户端和服务端通讯功能示例
2017/07/10 PHP
Laravel中如何轻松容易的输出完整的SQL语句
2020/07/26 PHP
用js实现控制内容的向上向下滚动效果
2007/06/26 Javascript
javascript 写类方式之五
2009/07/05 Javascript
用cssText批量修改样式
2009/08/29 Javascript
jQuery UI 实现email输入提示实例
2013/08/15 Javascript
jquery设置按钮停顿3秒不可用
2014/03/07 Javascript
每天一篇javascript学习小结(RegExp对象)
2015/11/17 Javascript
在WordPress中加入Google搜索功能的简单步骤讲解
2016/01/04 Javascript
jQuery+css last-child实现选择最后一个子元素操作示例
2018/12/10 jQuery
layer更改皮肤的实现方法
2019/09/11 Javascript
layui复选框限制选择个数的方法
2019/09/18 Javascript
vuex 实现getter值赋值给vue组件里的data示例
2019/11/05 Javascript
2019最新21个MySQL高频面试题介绍
2020/02/06 Javascript
vue实现简单学生信息管理
2020/05/30 Javascript
解决vue项目input输入框双向绑定数据不实时生效问题
2020/08/05 Javascript
Python中Django 后台自定义表单控件
2017/03/28 Python
python中字符串的操作方法大全
2018/06/03 Python
Python实现TCP通信的示例代码
2019/09/09 Python
Flask和pyecharts实现动态数据可视化
2020/02/26 Python
python删除某个目录文件夹的方法
2020/05/26 Python
最新版 Windows10上安装Python 3.8.5的步骤详解
2020/11/28 Python
深入研究HTML5实现图片压缩上传功能
2016/03/25 HTML / CSS
家庭户外服装:Hawkshead
2017/11/02 全球购物
Dr. Martens马汀博士法国官网:马丁靴鼻祖
2020/01/15 全球购物
预备党员思想汇报范文
2014/01/11 职场文书
幼儿园运动会加油词
2014/02/14 职场文书
评析教师个人的自我评价
2014/02/19 职场文书
小学教学随笔感言
2014/02/26 职场文书
美容院经理岗位职责
2014/04/03 职场文书
出国签证在职证明
2014/09/20 职场文书
2015年禁毒宣传活动总结
2015/03/25 职场文书
2015年乡镇发展党员工作总结
2015/03/31 职场文书
Windows Server 2019 域控制器安装图文教程
2022/04/28 Servers