本篇內(nèi)容主要講解“Python怎么實(shí)現(xiàn)遞歸遍歷文件夾搜索文件”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“Python怎么實(shí)現(xiàn)遞歸遍歷文件夾搜索文件”吧!
創(chuàng)新互聯(lián)是一家專(zhuān)注于網(wǎng)站制作、網(wǎng)站設(shè)計(jì)與策劃設(shè)計(jì),棲霞網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專(zhuān)注于網(wǎng)站建設(shè)十年,網(wǎng)設(shè)計(jì)領(lǐng)域的專(zhuān)業(yè)建站公司;建站業(yè)務(wù)涵蓋:棲霞等地區(qū)。棲霞做網(wǎng)站價(jià)格咨詢(xún):18982081108
開(kāi)發(fā)背景:
電腦的E盤(pán)里有很多電子書(shū),以前對(duì)個(gè)技術(shù)比較感興趣就去下載很多電子書(shū),有些看了,有些沒(méi)看,這些電子書(shū)沒(méi)有在一個(gè)地方,于是我準(zhǔn)備寫(xiě)一個(gè)腳本,將這個(gè)電子書(shū)書(shū)搜索出來(lái),進(jìn)行整理一下。
程序設(shè)計(jì)的思路:
定義一個(gè)搜索的根目錄baseDir,一個(gè)不搜索的文件夾列表notSearhFolderArr,一個(gè)搜索的文件類(lèi)型列表searchTypeArr,
判斷根目錄baseDir是有效的,并且不存在于notSearhFolderArr數(shù)組中,
獲取文件夾下的所有文件及文件夾,
遍歷,判斷子元素是文件就,判斷文件類(lèi)型是否存在于searchTypeArr,如果存在返回路徑
判斷子元素,是文件夾并且不屬于notSearhFolderArr數(shù)組中, 執(zhí)行第一步,進(jìn)行遞歸搜索
代碼:
# 根據(jù)配置好的文件,搜索文件夾import osimport ioimport sys sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf8')# 主函數(shù)baseDir = "E:\\Pang\\for_search" # 搜索的根目錄notSearchFolderArr = ['node_modules'] # 不搜索的目錄searchFileTypeArr = ['.pdf','.PDF'] # 搜索的文件類(lèi)型def searhMain(): allResArr = searchFolder(baseDir) print('\n'.join(allResArr))# 搜索一個(gè)文件目錄 傳入一個(gè)文件目錄路徑def searchFolder(folderPath): folderName = os.path.split(folderPath)[-1] searFilePathArr = [] if os.path.exists(folderPath) and (folderName not in notSearchFolderArr): fileArr = os.listdir(folderPath) for item in fileArr: currentPath = folderPath+'\\'+item (fileName,fileType) = os.path.splitext(item) if os.path.isfile(currentPath) and (fileType in searchFileTypeArr): searFilePathArr.append(currentPath) if os.path.isdir(currentPath) and (item not in notSearchFolderArr): innerFileArr = searchFolder(currentPath) searFilePathArr.extend(innerFileArr) return searFilePathArr searhMain()
主要用到的模塊和api:
模塊 os: 操作文件的模塊
主要api:
os.path.split : 分割路徑 os.path.exists: 路徑是否存在 os.listdir: 路徑是否是文件夾 os.path.splitext:拆分路徑中的文件擴(kuò)展名于其他 os.path.isfile: 路徑是否是文件 append: 向數(shù)組中追加一個(gè)元素 extend: 向數(shù)組追加一個(gè)數(shù)組
運(yùn)行結(jié)果:
程序返回的事根目錄下所有的pdf文件路徑列表
這個(gè)腳本稍作修改就可以查詢(xún)多個(gè)文件類(lèi)型,對(duì)文件進(jìn)行分類(lèi),獲取要查詢(xún)的文件路徑后,還可以對(duì)文件,進(jìn)行批量備份到一個(gè)文件夾下,或者將搜索結(jié)果直接打包壓縮?,F(xiàn)在怎么玩都可以。
到此,相信大家對(duì)“Python怎么實(shí)現(xiàn)遞歸遍歷文件夾搜索文件”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢(xún),關(guān)注我們,繼續(xù)學(xué)習(xí)!
網(wǎng)站標(biāo)題:Python怎么實(shí)現(xiàn)遞歸遍歷文件夾搜索文件
分享URL:http://www.rwnh.cn/article0/igpoio.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、搜索引擎優(yōu)化、網(wǎng)站設(shè)計(jì)公司、定制開(kāi)發(fā)、品牌網(wǎng)站制作、網(wǎng)站收錄
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)