python遍歷文件夾,指定遍歷深度與忽略目錄的方法
背景
需要在文件夾中搜索某一文件,找到后返回此文件所在目錄。用最常規(guī)的os.listdir()方式實(shí)現(xiàn)了一版,但執(zhí)行時(shí)報(bào)錯(cuò):遞歸超過最大深度。于是自己添加了點(diǎn)功能,之所有寫此函數(shù)是為了讓它適應(yīng)不同的項(xiàng)目,因?yàn)橛许?xiàng)目要找的文件在第一層,有的在第二層。
函數(shù)
功能:在文件夾中查找某一文件,找到后返回True與文件所在目錄路徑。
參數(shù):filepath, 要查找的目錄
參數(shù):filename, 要查找的文件
擴(kuò)展1:find_depth, 查找時(shí)指定遞歸深度;
擴(kuò)展2:ignore_path, 查找時(shí)忽略某些目錄;
#!/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("當(dāng)前查找目錄:{},遞歸層級(jí):{}".format(filepath, find_depth)) # 遞歸深度控制 find_depth -= 1 for file_ in os.listdir(filepath): # print cyan("file: {}".format(file_)) if isfile(join(filepath, file_)): # print "當(dāng)前文件:{}".format(file_) if file_ == filename: return True, filepath elif find_depth <= 0: # 遞歸深度控制, 為0時(shí)退出 # 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遍歷文件夾,指定遍歷深度與忽略目錄的方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python?異步如何使用等待有時(shí)間限制協(xié)程
這篇文章主要為大家介紹了Python?異步如何使用等待有時(shí)間限制協(xié)程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03基于Python3.6+splinter實(shí)現(xiàn)自動(dòng)搶火車票
這篇文章主要為大家詳細(xì)介紹了基于Python3.6+splinter實(shí)現(xiàn)自動(dòng)搶火車票,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-09-09windows下Python實(shí)現(xiàn)將pdf文件轉(zhuǎn)化為png格式圖片的方法
這篇文章主要介紹了windows下Python實(shí)現(xiàn)將pdf文件轉(zhuǎn)化為png格式圖片的方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了Python實(shí)現(xiàn)將pdf轉(zhuǎn)換為png格式的相關(guān)模塊、使用方法與相關(guān)注意事項(xiàng),需要的朋友可以參考下2017-07-07python 實(shí)現(xiàn)客戶端與服務(wù)端的通信
這篇文章主要介紹了python 實(shí)現(xiàn)客戶端與服務(wù)端的通信的方法,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2020-12-12使用pycharm創(chuàng)建Django項(xiàng)目失敗的解決方案
使用PyCharm創(chuàng)建Django項(xiàng)目時(shí)遇到無(wú)法運(yùn)行的問題,可以檢查Python的安裝路徑設(shè)置是否正確,在PyCharm的設(shè)置中找到項(xiàng)目解釋器的位置,確保路徑正確,如果不確定Python的安裝位置,可以在命令提示符中使用“where Python”命令查詢2024-09-09IDA Pro 6.0使用Qt框架實(shí)現(xiàn)了跨平臺(tái)的UI界面
通過本文帶領(lǐng)大家學(xué)習(xí)如何使用PySide使用IDAPython為 IDA Pro 創(chuàng)建 UI 界面,對(duì)IDA Pro 6.0使用Qt 框架實(shí)現(xiàn)了跨平臺(tái)的UI相關(guān)知識(shí)感興趣的朋友一起看看吧2021-07-07Python?colorama?彩色打印實(shí)現(xiàn)代碼
這篇文章主要介紹了Python?colorama?彩色打印實(shí)現(xiàn)代碼,將介紹的類為Back,?它實(shí)現(xiàn)了與?Fore?類相同的九個(gè)關(guān)鍵字:BLACK、RED、GREEN、YELLOW、BLUE、MAGENTA、CYAN、WHITE、RESET,感興趣的朋友一起看看吧2022-04-04