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错误:AttributeError: 'module' object has no attribute 'setdefaultencoding'问题的解决方法
Aug 22 Python
Python中你应该知道的一些内置函数
Mar 31 Python
python使用xslt提取网页数据的方法
Feb 23 Python
Python判断一个文件夹内哪些文件是图片的实例
Dec 07 Python
python实现微信小程序用户登录、模板推送
Aug 28 Python
Python3 A*寻路算法实现方式
Dec 24 Python
python读取与处理netcdf数据方式
Feb 14 Python
python3将变量写入SQL语句的实现方式
Mar 02 Python
Python 读取xml数据,cv2裁剪图片实例
Mar 10 Python
Django-migrate报错问题解决方案
Apr 21 Python
Scrapy-Redis之RedisSpider与RedisCrawlSpider详解
Nov 18 Python
Pycharm Plugins加载失败问题解决方案
Nov 28 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对字符串的递增运算分析
2010/08/08 PHP
php数组添加与删除单元的常用函数实例分析
2015/02/16 PHP
PHP实现的购物车类实例
2015/06/17 PHP
Yii2创建多界面主题(Theme)的方法
2016/10/08 PHP
CI框架(CodeIgniter)操作redis的方法详解
2018/01/25 PHP
关闭页面时window.location事件未执行的原因分析及解决方案
2014/09/01 Javascript
使用typeof方法判断undefined类型
2014/09/09 Javascript
利用jQuery实现CheckBox全选/全不选/反选的简单代码
2016/05/31 Javascript
微信小程序(三):网络请求
2017/01/13 Javascript
Bootstrap模态框使用详解
2017/02/15 Javascript
详解使用fetch发送post请求时的参数处理
2017/04/05 Javascript
Bootstrap实现可折叠分组侧边导航菜单
2018/03/07 Javascript
d3绘制基本的柱形图的实现代码
2018/12/12 Javascript
Angular8路由守卫原理和使用方法
2019/08/29 Javascript
[01:23]2019完美世界全国高校联赛(春季赛)合肥全国总决赛
2019/06/10 DOTA
python使用nntp读取新闻组内容的方法
2015/05/08 Python
Python实现合并字典的方法
2015/07/07 Python
Python基于Flask框架配置依赖包信息的项目迁移部署
2018/03/02 Python
解决python 输出是省略号的问题
2018/04/19 Python
30秒学会30个超实用Python代码片段【收藏版】
2019/10/15 Python
基于Python中isfile函数和isdir函数使用详解
2019/11/29 Python
python实现数字炸弹游戏
2020/07/17 Python
东方电视购物:东方CJ
2016/10/12 全球购物
成人高等教育毕业生自我鉴定
2013/10/22 职场文书
大二学生职业生涯规划书
2014/02/05 职场文书
财务总监岗位职责
2014/03/07 职场文书
函授生自我鉴定
2014/03/25 职场文书
小学三年级学生评语
2014/04/22 职场文书
经济信息系毕业生自荐信
2014/06/02 职场文书
奥巴马上海演讲稿
2014/09/10 职场文书
2015年营销工作总结范文
2015/04/23 职场文书
面试复试通知单
2015/04/24 职场文书
员工表扬信怎么写
2015/05/05 职场文书
傅雷家书读书笔记
2015/06/29 职场文书
2016寒假假期总结
2015/10/10 职场文书
有关信念的名言语录集锦
2019/12/06 职场文书