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 相关文章推荐
一个检测OpenSSL心脏出血漏洞的Python脚本分享
Apr 10 Python
python操作字典类型的常用方法(推荐)
May 16 Python
python中快速进行多个字符替换的方法小结
Dec 15 Python
Python 2与Python 3版本和编码的对比
Feb 14 Python
利用python将json数据转换为csv格式的方法
Mar 22 Python
python读取csv文件并把文件放入一个list中的实例讲解
Apr 27 Python
Django项目中包含多个应用时对url的配置方法
May 30 Python
python基于C/S模式实现聊天室功能
Jan 09 Python
Pandas数据离散化原理及实例解析
Nov 16 Python
Matplotlib使用Cursor实现UI定位的示例代码
Mar 12 Python
在python里创建一个任务(Task)实例
Apr 25 Python
Python实现上下文管理器的方法
Aug 07 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数据库连接类~~做成一个分页类!
2006/11/25 PHP
php中文字符串截取方法实例总结
2014/09/30 PHP
PHP通过串口实现发送短信
2015/07/08 PHP
ExtJS Grid使用SimpleStore、多选框的方法
2009/11/20 Javascript
关于跨站脚本攻击问题
2011/12/22 Javascript
js修改table中Td的值(定义td的单击事件)
2013/01/10 Javascript
js中数组Array的一些常用方法总结
2013/08/12 Javascript
javascript实现的淘宝旅行通用日历组件用法实例
2015/08/03 Javascript
微信开发 消息推送实现代码
2016/10/21 Javascript
RequireJS简易绘图程序开发
2016/10/28 Javascript
jQ处理xml文件和xml字符串的方法(详解)
2016/11/22 Javascript
Jquery Easyui选项卡组件Tab使用详解(10)
2016/12/18 Javascript
JS实现标签页切换效果
2017/05/04 Javascript
react中的ajax封装实例详解
2017/10/17 Javascript
深入理解Vue官方文档梳理之全局API
2017/11/22 Javascript
Vue2.x中利用@font-size引入字体图标报错的解决方法
2018/09/28 Javascript
微信小程序使用swiper组件实现层叠轮播图
2018/11/04 Javascript
JavaScript实现tab栏切换效果
2020/03/16 Javascript
[01:30:54]《加油DOTA》 第三期
2014/08/18 DOTA
让python同时兼容python2和python3的8个技巧分享
2014/07/11 Python
python按照多个字符对字符串进行分割的方法
2015/03/17 Python
Python中的ceil()方法使用教程
2015/05/14 Python
Python实现将照片变成卡通图片的方法【基于opencv】
2018/01/17 Python
利用pyuic5将ui文件转换为py文件的方法
2019/06/19 Python
HTML5对比HTML4的主要改变和改进总结
2016/05/27 HTML / CSS
波兰在线杂货店:Polski Koszyk
2019/11/02 全球购物
德国苹果商店:MacTrade
2020/05/18 全球购物
酒店销售经理岗位职责
2014/01/31 职场文书
学生周末长期请假条
2014/02/15 职场文书
计算机科学系职业生涯规划书
2014/03/08 职场文书
厨房管理计划书
2014/04/27 职场文书
3的组成教学反思
2014/04/30 职场文书
食品安全承诺书范文
2014/08/29 职场文书
《狼牙山五壮士》读后感:宁死不屈,视死如归
2019/08/16 职场文书
Python办公自动化之Excel(中)
2021/05/24 Python
使用tensorflow 实现反向传播求导
2021/05/26 Python