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中Collection的使用小技巧
Aug 18 Python
python实现简单的socket server实例
Apr 29 Python
python制作爬虫并将抓取结果保存到excel中
Apr 06 Python
Python对象转JSON字符串的方法
Apr 27 Python
Python中列表list以及list与数组array的相互转换实现方法
Sep 22 Python
Python基于Floyd算法求解最短路径距离问题实例详解
May 16 Python
Python OpenCV处理图像之滤镜和图像运算
Jul 10 Python
Python实现提取XML内容并保存到Excel中的方法
Sep 01 Python
python实现得到当前登录用户信息的方法
Jun 21 Python
从多个tfrecord文件中无限读取文件的例子
Feb 17 Python
python标准库OS模块详解
Mar 10 Python
Selenium alert 弹窗处理的示例代码
Aug 06 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
德生PL990,目前市面上唯一一款便携式插卡蓝牙全波段高性能收音机
2021/03/02 无线电
PHP删除特定数组内容并且重建数组索引的方法.
2011/03/25 PHP
PHP查询网站的PR值
2013/10/30 PHP
php 生成短网址原理及代码
2014/01/23 PHP
php反射应用示例
2014/02/25 PHP
浅谈Laravel中的三种中间件的作用
2019/10/13 PHP
网络之美 JavaScript中Get和Set访问器的实现代码
2010/09/19 Javascript
js获取当前日期代码适用于网页头部
2013/06/27 Javascript
jquery对象和javascript对象即DOM对象相互转换
2014/08/07 Javascript
学习JavaScript设计模式(链式调用)
2015/11/26 Javascript
jquery实现ajax加载超时提示的方法
2016/07/23 Javascript
Vue resource中的GET与POST请求的实例代码
2017/07/21 Javascript
JavaScript使用atan2来绘制箭头和曲线的实例
2017/09/14 Javascript
vue.js项目打包上线的图文教程
2017/11/16 Javascript
react脚手架如何配置less和ant按需加载的方法步骤
2018/11/28 Javascript
Vue中的基础过渡动画及实现原理解析
2018/12/04 Javascript
详解微信小程序图片地扯转base64解决方案
2019/08/18 Javascript
JavaScript函数Call、Apply原理实例解析
2020/02/17 Javascript
微信小程序getLocation 需要在app.json中声明permission字段
2020/03/03 Javascript
Python编程中的反模式实例分析
2014/12/08 Python
python实现指定字符串补全空格的方法
2015/04/30 Python
Python读取Json字典写入Excel表格的方法
2018/01/03 Python
python dataframe常见操作方法:实现取行、列、切片、统计特征值
2018/06/09 Python
基于Pandas读取csv文件Error的总结
2018/06/15 Python
python可视化实现KNN算法
2019/10/16 Python
Django框架HttpResponse对象用法实例分析
2019/11/01 Python
Flask中endpoint的理解(小结)
2019/12/11 Python
用Python在Excel里画出蒙娜丽莎的方法示例
2020/04/28 Python
python爬取代理ip的示例
2020/12/18 Python
矫正人员思想汇报
2014/01/08 职场文书
工商治理实习生的自我评价分享
2014/02/20 职场文书
大学老师推荐信
2014/02/25 职场文书
酒店仓管员岗位职责
2014/04/28 职场文书
公司离职证明标准范本
2014/10/05 职场文书
优化经济发展环境工作总结
2015/08/11 职场文书
社区干部培训心得体会
2016/01/06 职场文书