python遍历文件夹,指定遍历深度与忽略目录的方法
作者:一个CD包 发布时间:2022-12-28 23:57:27
标签:python,遍历,文件夹
背景
需要在文件夹中搜索某一文件,找到后返回此文件所在目录。用最常规的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)
来源:https://blog.csdn.net/yu12377/article/details/77965905
0
投稿
猜你喜欢
- 我们经常会遇这样一个需求:判断字符串中是否包含某个关键词,也就是特定的子字符串。比如从一堆书籍名称中找出含有“pytho
- 以下代码已经在SQLServer2008上的示例数据库测试通过问题一:如何为数据进行加密与解密,避免使用者窃取机密数据? 对于一些敏感数据,
- 本文实例讲述了Python使用爬虫抓取美女图片并保存到本地的方法。分享给大家供大家参考,具体如下:图片资源来自于www.qiubaichen
- 决策树是一种将数据集通过分割成小的、易于处理的子集来进行分类或回归的算法。其中每个节点代表一个用于划分数据的特征,每个叶子节点代表一个类别或
- 1. assert函数说明:Assert statements are a convenient way to insert debuggi
- tornado 默认有一个模板引擎但是功能简单(其实我能用到的都差不多)使用起来颇为麻烦, 而jinja2语法与django模板相似所以决定
- 通过本文给大家介绍Python3控制路由器——使用requests重启极路由.py的相关知识,代码写了相应的注释,以后再写成可以方便调用的模
- <script language="javascript">function chang
- 本文实例讲述了Python自然语言处理 NLTK 库用法。分享给大家供大家参考,具体如下:在这篇文章中,我们将基于 Python 讨论自然语
- 分页设计我们经常会见到,这里有30个分页设计,以供大家欣赏欣赏借鉴。
- python脚本执行的3种方法:(找到自己能够使用的方法,能用的方法就是好方法)方法一:交互模式直接执行语句交互模式下直接编写执行 Pyth
- 本文实例讲述了Python实现批量修改图片格式和大小的方法。分享给大家供大家参考,具体如下:第一种方法用到opencv库import osi
- 前言Scrapy是一个非常好的抓取框架,它不仅提供了一些开箱可用的基础组建,还能够根据自己的需求,进行强大的自定义。本文主要给大家介绍了关于
- 登陆页login.asp:<% if request.Form.count>0 then ses
- 我们在爬虫时,经常会遇见中文乱码问题,之前都是编码格式的问题,很少遇见由于压缩格式造成的编码混乱问题,特记录下。先看下混乱的编码样式。b
- 一、opencv是什么?OpenCV是一个用于图像处理、分析、机器视觉方面的开源函数库.二、使用步骤1.引入库代码如下:import cv2
- mutilprocess像线程一样管理进程,这个是mutilprocess的核心,他与threading很是相像,对多核CPU的
- 本文实例讲述了python检查字符串是否是正确ISBN的方法。分享给大家供大家参考。具体实现方法如下:def isISBN(isbn):
- 从本篇开始讲述如何用css实现网页的布局,即如何用css控制网页内各个元素的显示位置。如果你是一个初学者,很可能觉得做一个网页的第一步就是布
- 在Oracle本地数据库端执行赋权dbuser帐号SQL> grant create database link to dbuser;