python 遍历磁盘目录的三种方法


Posted in Python onApril 02, 2021

深度遍历

递归

import os

def get_files(path):
  # 判断路径是否存在,如果不存在,函数直接结束
  if not os.path.exists(path):
    print('路径不存在')
    return
  # 判断路径是否为文件夹
  if not os.path.isdir(path):
    print('路径是一个文件')
    return
  # 这时候,路径是一个文件夹
  # 获取文件夹中文件或文件夹的名称
  file_list = os.listdir(path)
  # 遍历文件夹
  for filename in file_list:
    # 拼接路径,获取每个次级目录下的文件路径
    subpath = os.path.join(path,filename)
    if os.path.isfile(subpath):
      if os.path.splitext(subpath)[1] == '.py':
        print('python文件:{}'.format(subpath))
    else:
      # 如果filename是文件夹,则调用函数继续遍历
      get_files(subpath)

用栈来遍历磁盘

栈的特点:先进后厨,后进先出
原理:path第一次被pop删除后返回path,遍历目录下的文件,如果遇到文件夹追加到列表中,pop是删除最后一位的元素,每次又遍历最后一位的文件夹,所以每一轮都会将次级目录下的文件夹遍历完成之后再遍历下个次级目录

import os

def get_files(path):
  # 判断路径是否存在
  if not os.path.exists(path):
    print('路径不存在')
    return
  if not os.path.isdir(path):
    print('路径是一个文件夹')
    return
  # 创建一个列表作为栈
  stack = [path]
  # 取出栈中的元素
  while len(stack) != 0:
    path = stack.pop()
    file_list = os.listdir(path)
    for filename in file_list:
      subpath = os.path.join(path,filename)
      if os.path.isfile(subpath):
        print('python文件:{}'.format(subpath))
      else:
        stack.append(subpath)

广度遍历磁盘

用队列遍历磁盘

import os
import collections


def get_py_file(path):
  # 判断路径是否存在
  if not os.path.exists(path):
    print('路径不存在')
    return
    # 判断路径是否是文件夹
  if os.path.isfile(path):
    print('路径是文件')
    return
    # path是一个文件夹

  # 定义一个空对列
  queue = collections.deque()
  queue.append(path)
  while len(queue) != 0:
    # 从队列中获取第一个元素
    path = queue.popleft()
    # 获取目录下的所有内容
    filelist = os.listdir(path)
    # 遍历
    for filename in filelist:
      # 拼接
      filepath = os.path.join(path, filename)
      if os.path.isfile(filepath):
        if os.path.splitext(filepath)[1] == '.py':
          print(filepath)
      else:
        queue.append(filepath)

以上就是python 遍历磁盘目录的三种方法的详细内容,更多关于python 遍历磁盘目录的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
如何解决django配置settings时遇到Could not import settings 'conf.local'
Nov 18 Python
Python脚本实现格式化css文件
Apr 08 Python
Python文件去除注释的方法
May 25 Python
如何使用Python的Requests包实现模拟登陆
Apr 27 Python
python抽取指定url页面的title方法
May 11 Python
python 弹窗提示警告框MessageBox的实例
Jun 18 Python
python psutil模块使用方法解析
Aug 01 Python
在notepad++中实现直接运行python代码
Dec 18 Python
使用PyTorch训练一个图像分类器实例
Jan 08 Python
tensorflow模型保存、加载之变量重命名实例
Jan 21 Python
TensorFlow实现保存训练模型为pd文件并恢复
Feb 06 Python
django queryset 去重 .distinct()说明
May 19 Python
python 如何在 Matplotlib 中绘制垂直线
在Windows下安装配置CPU版的PyTorch的方法
PyQt5 QThread倒计时功能的实现代码
Apr 02 #Python
Python中Permission denied的解决方案
Apr 02 #Python
python爬不同图片分别保存在不同文件夹中的实现
Python读取文件夹下的所有文件实例代码
如何用python识别滑块验证码中的缺口
You might like
网页游戏开发入门教程三(简单程序应用)
2009/11/02 PHP
php 运行效率总结(提示程序速度)
2009/11/26 PHP
PHP和Mysqlweb应用开发核心技术 第1部分 Php基础-1 开始了解php
2011/07/03 PHP
Laravel程序架构设计思路之使用动作类
2018/06/07 PHP
TNC vs RR BO3 第一场 2.14
2021/03/10 DOTA
一个简单的JavaScript 日期计算算法
2009/09/11 Javascript
Javascript学习笔记2 函数
2010/01/11 Javascript
基于jquery的bankInput银行卡账号格式化
2012/08/22 Javascript
JS鼠标滑过图片时切换图片实现思路
2013/09/12 Javascript
javascript实现支持移动设备画廊
2015/08/24 Javascript
JavaScript实现非常简单实用的下拉菜单效果
2015/08/27 Javascript
JavaScript function函数种类详解
2016/02/22 Javascript
关于JS中setTimeout()无法调用带参函数问题的解决方法
2016/06/21 Javascript
jquery插件uploadify多图上传功能实现代码
2016/08/12 Javascript
解析JavaScript数组方法reduce
2016/12/12 Javascript
微信小程序 picker 组件详解及简单实例
2017/01/10 Javascript
JS操作xml对象转换为Json对象示例
2017/03/25 Javascript
three.js中文文档学习之通过模块导入
2017/11/20 Javascript
解决vue打包项目后刷新404的问题
2018/03/06 Javascript
angular中子控制器向父控制器传值的实例
2018/10/08 Javascript
使用RxJS更优雅地进行定时请求详析
2019/06/02 Javascript
vue使用i18n实现国际化的方法详解
2019/09/05 Javascript
浅谈layui框架自带分页和表格重载的接口解析问题
2019/09/11 Javascript
Python算术运算符实例详解
2017/05/31 Python
Python简单生成随机姓名的方法示例
2017/12/27 Python
python实现windows下文件备份脚本
2018/05/27 Python
Python字符串、列表、元组、字典、集合的补充实例详解
2019/12/20 Python
python中的socket实现ftp客户端和服务器收发文件及md5加密文件
2020/04/01 Python
英国女性运动服品牌:Sweaty Betty
2018/11/08 全球购物
linux面试题参考答案(3)
2012/09/13 面试题
linux下进程间通信的方式
2014/12/23 面试题
商务日语专业的自荐信
2014/05/23 职场文书
2014教师“四风问题”对照检查材料思想汇报
2014/09/16 职场文书
2014迎国庆演讲稿
2014/09/19 职场文书
刑事起诉书范文
2015/05/19 职场文书
让人瞬间清醒的句子,句句经典,字字如金
2019/07/08 职场文书