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 专题六 局部变量、全局变量global、导入模块变量
Mar 20 Python
利用python微信库itchat实现微信自动回复功能
May 18 Python
python 调用c语言函数的方法
Sep 29 Python
python3.6 +tkinter GUI编程 实现界面化的文本处理工具(推荐)
Dec 20 Python
python中正则表达式的使用方法
Feb 25 Python
Python tkinter三种布局实例详解
Jan 06 Python
PyCharm中Matplotlib绘图不能显示UI效果的问题解决
Mar 12 Python
Django之choices选项和富文本编辑器的使用详解
Apr 01 Python
python3 sleep 延时秒 毫秒实例
May 04 Python
Python环境管理virtualenv&amp;virtualenvwrapper的配置详解
Jul 01 Python
Python 如何查找特定类型文件
Aug 17 Python
pycharm专业版远程登录服务器的详细教程
Sep 15 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
Zerg建筑一览
2020/03/14 星际争霸
php几个预定义变量$_SERVER用法小结
2014/11/07 PHP
ioncube_loader_win_5.2.dll的错误解决方法
2015/01/04 PHP
thinkPHP中钩子的两种配置调用方法详解
2016/11/11 PHP
Redis构建分布式锁
2017/03/28 PHP
一个javascript参数的小问题
2008/03/02 Javascript
JavaScript学习笔记之获取当前目录的实现代码
2010/12/14 Javascript
js动态加载以及确定加载完成的代码
2011/07/31 Javascript
JavaScript 高级篇之DOM文档,简单封装及调用、动态添加、删除样式(六)
2012/04/07 Javascript
JS判断表单输入是否为空(示例代码)
2013/12/23 Javascript
判断window.onload是否多次使用的方法
2014/09/21 Javascript
jQuery源码解读之addClass()方法分析
2015/02/20 Javascript
js编写贪吃蛇的小游戏
2020/08/24 Javascript
学习jQuey中的return false
2015/12/18 Javascript
js如何改变文章的字体大小
2016/01/08 Javascript
Javascript技术栈中的四种依赖注入小结
2016/02/27 Javascript
jQuery使用方法
2017/02/04 Javascript
js正则表达式验证表单【完整版】
2017/03/06 Javascript
使用webpack打包koa2 框架app
2018/02/02 Javascript
vue和webpack安装命令详解
2018/06/15 Javascript
JavaScript自动生成 年月范围 选择功能完整示例【基于jQuery插件】
2019/09/03 jQuery
Openlayers学习之地图比例尺控件
2020/09/28 Javascript
[02:35]DOTA2超级联赛专访XB 难忘一年九冠称王
2013/06/20 DOTA
python 二维数组90度旋转的方法
2019/01/28 Python
Python 实现递归法解决迷宫问题的示例代码
2020/01/12 Python
Python3使用腾讯云文字识别(腾讯OCR)提取图片中的文字内容实例详解
2020/02/18 Python
详解pandas.DataFrame.plot() 画图函数
2020/06/14 Python
法国在线宠物店:zooplus.fr
2018/02/23 全球购物
mysql_pconnect()和mysql_connect()有什么区别
2012/05/25 面试题
中专生职业生涯规划书范文
2014/01/10 职场文书
求职信的最佳写作思路
2014/02/01 职场文书
工厂总经理岗位职责
2014/02/07 职场文书
家长对学生的评语
2014/04/18 职场文书
《天安门广场》教学反思
2014/04/23 职场文书
工商管理专业毕业生自我鉴定2014
2014/10/04 职场文书
2014年幼儿园教师工作总结
2014/11/08 职场文书