python遍历文件夹,指定遍历深度与忽略目录的方法


Posted in Python onJuly 11, 2018

背景

需要在文件夹中搜索某一文件,找到后返回此文件所在目录。用最常规的os.listdir()方式实现了一版,但执行时报错:递归超过最大深度。于是自己添加了点功能,之所有写此函数是为了让它适应不同的项目,因为有项目要找的文件在第一层,有的在第二层。

函数

功能:在文件夹中查找某一文件,找到后返回True与文件所在目录路径。

参数:filepath, 要查找的目录

参数:filename, 要查找的文件

扩展1:find_depth, 查找时指定递归深度;

扩展2:ignore_path, 查找时忽略某些目录;

#!/usr/bin/env python
# coding=utf-8
import os
# from fabric.colors import *

def find_file(self, filepath, filename, find_depth=1, ignore_path=['.git', 'node_modules']):
  """查找文件"""
  # print blue("当前查找目录:{},递归层级:{}".format(filepath, find_depth))
  # 递归深度控制
  find_depth -= 1
  for file_ in os.listdir(filepath):
    # print cyan("file: {}".format(file_))
    if isfile(join(filepath, file_)):
      # print "当前文件:{}".format(file_)
      if file_ == filename:
        return True, filepath
    elif find_depth <= 0: # 递归深度控制, 为0时退出
      # print yellow("超出递归深度,忽略!")
      continue
    elif file_ in ignore_path: # 忽略指定目录
      # print yellow("此目录在忽略列表中,跳过!")
      continue
    else:
      result, abs_path = self.find_file(filepath=join(filepath, file_),
                       filename=filename,
                       find_depth=find_depth)
      if result:
        print green("找到{}文件,所在路径{}".format(filename, abs_path))
        return result, abs_path
  return False, filepath

result, filepath = find_build(filepath="/data/deploy/jenkins/data/jobs/sit-zjims-mobile/workspace/", filename="gulpfile.js", find_depth=3)

以上这篇python遍历文件夹,指定遍历深度与忽略目录的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python基础之函数用法实例详解
Sep 10 Python
Python编程判断一个正整数是否为素数的方法
Apr 14 Python
python如何对实例属性进行类型检查
Mar 20 Python
Python基于多线程操作数据库相关问题分析
Jul 11 Python
Python wxPython库消息对话框MessageDialog用法示例
Sep 03 Python
Python 分发包中添加额外文件的方法
Aug 16 Python
python如果快速判断数字奇数偶数
Nov 13 Python
python 浅谈serial与stm32通信的编码问题
Dec 18 Python
python2.7使用scapy发送syn实例
May 05 Python
Python中格式化字符串的四种实现
May 26 Python
在Python 中将类对象序列化为JSON
Apr 06 Python
使用Python通过企业微信应用给企业成员发消息
Apr 18 Python
python 遍历目录(包括子目录)下所有文件的实例
Jul 11 #Python
Python批处理删除和重命名文件夹的实例
Jul 11 #Python
python顺序的读取文件夹下名称有序的文件方法
Jul 11 #Python
通过python顺序修改文件名字的方法
Jul 11 #Python
对python3 一组数值的归一化处理方法详解
Jul 11 #Python
浅谈利用numpy对矩阵进行归一化处理的方法
Jul 11 #Python
Python实现基于PIL和tesseract的验证码识别功能示例
Jul 11 #Python
You might like
php批量缩放图片的代码[ini参数控制]
2011/02/11 PHP
PHP中VC6、VC9、TS、NTS版本的区别与用法详解
2013/10/26 PHP
浅析php原型模式
2014/11/25 PHP
PHP IDE phpstorm 常用快捷键
2015/05/18 PHP
phalcon model在插入或更新时会自动验证非空字段的解决办法
2016/12/29 PHP
JavaScript For Beginners(转载)
2007/01/05 Javascript
jquery 笔记 事件
2011/11/02 Javascript
用js判断输入是否为中文的函数
2014/03/10 Javascript
了不起的node.js读书笔记之mongodb数据库交互
2014/12/22 Javascript
JavaScript中DOM详解
2015/04/13 Javascript
jQuery中closest和parents的区别分析
2015/05/07 Javascript
浅谈JavaScript的计时器对象
2016/12/26 Javascript
js 实现复选框只能选择一项的示例代码
2018/01/23 Javascript
vue-cli构建项目下使用微信分享功能
2018/05/28 Javascript
JS获取指定月份的天数两种实现方法
2018/06/22 Javascript
解决js相同的正则多次调用test()返回的值却不同的问题
2018/10/10 Javascript
Weex开发之WEEX-EROS开发踩坑(小结)
2019/10/16 Javascript
[13:38]2015国际邀请赛中国战队出征仪式
2015/05/29 DOTA
[01:02]DOTA2辉夜杯决赛日 CDEC.Y对阵VG赛前花絮
2015/12/27 DOTA
python列表操作实例
2015/01/14 Python
python运行时间的几种方法
2016/06/17 Python
Python3处理HTTP请求的实例
2018/05/10 Python
Python实现判断一行代码是否为注释的方法
2018/05/23 Python
python学生信息管理系统(初级版)
2018/10/17 Python
python 常见字符串与函数的用法详解
2018/11/23 Python
Python基础之列表常见操作经典实例详解
2020/02/26 Python
使用Python三角函数公式计算三角形的夹角案例
2020/04/15 Python
非常震撼的纯CSS3人物行走动画
2016/02/24 HTML / CSS
干部培训自我鉴定
2014/01/22 职场文书
党员个人对照检查材料范文
2014/09/24 职场文书
授权收款委托书范本
2014/10/10 职场文书
2014年环卫工作总结
2014/11/22 职场文书
北京青年观后感
2015/06/15 职场文书
观后感的写法
2015/06/19 职场文书
Django给表单添加honeypot验证增加安全性
2021/05/06 Python
java如何实现获取客户端ip地址的示例代码
2022/04/07 Java/Android