python遍歷文件夾,指定遍歷深度與忽略目錄的方法
背景
需要在文件夾中搜索某一文件,找到后返回此文件所在目錄。用最常規(guī)的os.listdir()方式實現(xiàn)了一版,但執(zhí)行時報錯:遞歸超過最大深度。于是自己添加了點功能,之所有寫此函數(shù)是為了讓它適應(yīng)不同的項目,因為有項目要找的文件在第一層,有的在第二層。
函數(shù)
功能:在文件夾中查找某一文件,找到后返回True與文件所在目錄路徑。
參數(shù):filepath, 要查找的目錄
參數(shù):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遍歷文件夾,指定遍歷深度與忽略目錄的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
基于Python3.6+splinter實現(xiàn)自動搶火車票
這篇文章主要為大家詳細介紹了基于Python3.6+splinter實現(xiàn)自動搶火車票,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-09-09windows下Python實現(xiàn)將pdf文件轉(zhuǎn)化為png格式圖片的方法
這篇文章主要介紹了windows下Python實現(xiàn)將pdf文件轉(zhuǎn)化為png格式圖片的方法,結(jié)合實例形式較為詳細的分析了Python實現(xiàn)將pdf轉(zhuǎn)換為png格式的相關(guān)模塊、使用方法與相關(guān)注意事項,需要的朋友可以參考下2017-07-07使用pycharm創(chuàng)建Django項目失敗的解決方案
使用PyCharm創(chuàng)建Django項目時遇到無法運行的問題,可以檢查Python的安裝路徑設(shè)置是否正確,在PyCharm的設(shè)置中找到項目解釋器的位置,確保路徑正確,如果不確定Python的安裝位置,可以在命令提示符中使用“where Python”命令查詢2024-09-09IDA Pro 6.0使用Qt框架實現(xiàn)了跨平臺的UI界面
通過本文帶領(lǐng)大家學習如何使用PySide使用IDAPython為 IDA Pro 創(chuàng)建 UI 界面,對IDA Pro 6.0使用Qt 框架實現(xiàn)了跨平臺的UI相關(guān)知識感興趣的朋友一起看看吧2021-07-07Python?colorama?彩色打印實現(xiàn)代碼
這篇文章主要介紹了Python?colorama?彩色打印實現(xiàn)代碼,將介紹的類為Back,?它實現(xiàn)了與?Fore?類相同的九個關(guān)鍵字:BLACK、RED、GREEN、YELLOW、BLUE、MAGENTA、CYAN、WHITE、RESET,感興趣的朋友一起看看吧2022-04-04