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

      網友投稿 1080 2022-05-29

      開發背景:

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

      程序設計的思路:

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

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

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

      遍歷,判斷子元素是文件,并且文件類型存在于searchTypeArr,如果真則存在返回路徑

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

      代碼:

      # 根據配置好的文件,搜索文件夾

      import os

      import io

      import sys

      sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf8') # 處理vscode打印中文亂碼問題

      # 主函數

      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)

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

      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: 向數組中追加一個元素

      extend: 向數組追加一個數組

      運行結果:

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

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

      學無止境

      這個小腳本,花費了我三個小時,除了關鍵字外,所有的api都是我一次一次百度所得,包括那個換行符,沒辦法,python寫的少,但我相信:

      雖然我走的慢,但每一步都是在前進,并且永不止步

      Python 數據結構

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:【愚公系列】2022年03月 .NET架構班 020-ABP vNext 虛擬文件系統
      下一篇:linux重要的目錄之proc和dev目錄
      相關文章
      亚洲久本草在线中文字幕| 亚洲人成77777在线播放网站不卡 亚洲人成77777在线观看网 | 亚洲中文无码永久免| 久久久青草青青国产亚洲免观 | 亚洲区日韩精品中文字幕| 亚洲综合自拍成人| 亚洲一级黄色视频| 97se亚洲国产综合自在线| 亚洲AV无码一区东京热| 亚洲精品国产精品| 亚洲国产中文在线二区三区免| 国产精品亚洲mnbav网站| 久久久久国产成人精品亚洲午夜| 偷自拍亚洲视频在线观看99| 亚洲天堂2016| 亚洲最大中文字幕无码网站 | 亚洲沟沟美女亚洲沟沟| 亚洲最大AV网站在线观看| 亚洲а∨精品天堂在线| 亚洲伊人久久大香线焦| 99久久婷婷国产综合亚洲| 亚洲欧美综合精品成人导航| 亚洲AV成人精品日韩一区| 国产精品亚洲一区二区三区在线观看| 国产亚洲精品美女久久久久 | 亚洲国产91精品无码专区| 亚洲a级在线观看| 久久亚洲日韩看片无码| 亚洲国产成人高清在线观看| 亚洲高清最新av网站| 综合亚洲伊人午夜网 | 亚洲AV无码成人专区片在线观看| 亚洲国产精品自在线一区二区| 亚洲视频一区二区三区| 国产成人精品日本亚洲专区61| 亚洲日韩中文字幕在线播放| 亚洲色偷拍区另类无码专区| 亚洲午夜福利在线观看| 日韩亚洲AV无码一区二区不卡| 亚洲国产成人综合| 亚洲AV无码成人精品区狼人影院 |