小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Python遞歸遍歷文件夾搜索文件 腳本

 千鋒Python學堂 2019-10-19

開發(fā)背景:

電腦的E盤里有很多電子書,以前對個技術(shù)比較感興趣就去下載很多電子書,有些看了,有些沒看,這些電子書沒有在一個地方,于是我準備寫一個腳本,將這個電子書書搜索出來,進行整理一下。

程序設(shè)計的思路:

定義一個搜索的根目錄baseDir,一個不搜索的文件夾列表notSearhFolderArr,一個搜索的文件類型列表searchTypeArr,

判斷根目錄baseDir是有效的,并且不存在于notSearhFolderArr數(shù)組中,

獲取文件夾下的所有文件及文件夾,

遍歷,判斷子元素是文件就,判斷文件類型是否存在于searchTypeArr,如果存在返回路徑

判斷子元素,是文件夾并且不屬于notSearhFolderArr數(shù)組中, 執(zhí)行第一步,進行遞歸搜索

代碼:

 # 根據(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'] # 搜索的文件類型def searhMain():
allResArr = searchFolder(baseDir)
print('\n'.join(allResArr))# 搜索一個文件目錄 傳入一個文件目錄路徑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:拆分路徑中的文件擴展名于其他
os.path.isfile: 路徑是否是文件
append: 向數(shù)組中追加一個元素
extend: 向數(shù)組追加一個數(shù)組

運行結(jié)果:

程序返回的事根目錄下所有的pdf文件路徑列表

Python遞歸遍歷文件夾搜索文件 腳本

這個腳本稍作修改就可以查詢多個文件類型,對文件進行分類,獲取要查詢的文件路徑后,還可以對文件,進行批量備份到一個文件夾下,或者將搜索結(jié)果直接打包壓縮?,F(xiàn)在怎么玩都可以。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多