查詢某資料夾下所有子資料夾內的py檔案-3一行程式碼搞定
轉自:https://mp.weixin.qq.com/s/FFXh8gRci4hMo6_gnBMPUg
工作中,有時會產生查詢某一類檔案的需求,比如log檔案。或者在做影像類深度學習時,需要讀取大類資料夾下,所有小類資料夾下的圖片。專門為這個需求寫一個函式太耽誤時間。所以,今天分享一個我工作中遇到的第三方庫imutils,並分享一下我對原始碼的理解。
from imutils import paths
# 要在哪條路徑下查詢
path = `…`
# 查詢圖片,得到圖片路徑
imagePaths = list(imutils.paths.list_images(basePath=path))
# 所有py檔案,得到py檔案路徑
imagePaths = list(imutils.paths.list_files(basePath=path,,validExts=(`.py`)))
# 原始碼解讀
def list_files(basePath, validExts=(“.jpg”, “.jpeg”, “.png”, “.bmp”, “.tif”, “.tiff”), contains=None):
# loop over the directory structure
for (rootDir, dirNames, filenames) in os.walk(basePath):
# loop over the filenames in the current directory
for filename in filenames:
# if the contains string is not none and the filename does not contain
# the supplied string, then ignore the file
if contains is not None and filename.find(contains) == -1:
continue
# determine the file extension of the current file
ext = filename[filename.rfind(“.”):].lower()
# check to see if the file is an image and should be processed
if ext.endswith(validExts):
# construct the path to the image and yield it
imagePath = os.path.join(rootDir, filename).replace(” “, “\ “)
yield imagePath
引數contains表示找到給定路徑下,給定字尾檔案型別,檔名中包含contains提供欄位的檔案
rfind() 返回字串最後一次出現的位置(從右向左查詢),如果沒有匹配項則返回-1
ext = filename[filename.rfind(“.”):].lower() 將檔案字尾轉換成小寫
ext.endswith(validExts) 匹配字尾,將檔案路徑中的空字串” “,轉化為“\ “
轉自:https://mp.weixin.qq.com/s/FFXh8gRci4hMo6_gnBMPUg
相關文章
- python 如何刪除資料夾下的所有檔案和子資料夾?Python
- C++讀取某個資料夾下面的子資料夾及其所有檔案C++
- Python求取資料夾內的檔案數量、子資料夾內的檔案數量Python
- LINUX下查詢大檔案及大的資料夾Linux
- matlab遍歷資料夾下的所有檔案Matlab
- linux刪除資料夾下所有檔案命令是什麼 linux刪除資料夾下內所有內容怎麼操作Linux
- Linux查詢哪個程式佔用檔案或資料夾Linux
- NodeJs批量require資料夾中的所有檔案NodeJSUI
- 批處理指令碼:遞迴移動資料夾內所有檔案指令碼遞迴
- Sublime Text 查詢時排除指定的資料夾或檔案
- python列出資料夾所有檔案有哪些方法?Python
- .Net引用根目錄子資料夾下的dll檔案
- 畸形檔案 資料夾
- Qt 選擇資料夾、建立資料夾以及建立檔案QT
- 工作經驗: linux 壓縮當前資料夾下所有檔案Linux
- python的應用 | 提取指定資料夾下所有PDF檔案的頁數Python
- 讀取資料夾檔案
- linux監控資料夾內的檔案數量Linux
- 批量提取資料夾內檔名
- 獲取一個資料夾下所有指定字尾名(.java)的檔案(包括子資料夾中的內容),並將這些檔案的絕對路徑寫入到一個文字檔案中Java
- 資料夾裡的檔案怎麼設定跟外資料夾同名
- 把多個資料夾中的檔案批量放到一個資料夾
- nodejs遞迴資料夾獲取所有檔案路徑NodeJS遞迴
- .gitignore 在已忽略資料夾中不忽略指定檔案、資料夾...Git
- Android 播放raw資料夾下音訊檔案Android音訊
- 將檔案轉移到一個資料夾內batBAT
- 轉移資料夾及其裡面所有內容
- 批處理bat 批次更改一個資料夾下所有檔名的部分內容.BAT
- 使用C#選擇資料夾、開啟資料夾、選擇檔案C#
- [python] 資料夾所有檔案讀取,正則化,json使用PythonJSON
- wpf winform 選擇檔案或選擇資料夾程式碼ORM
- git的gitignore檔案排除資料夾和檔案Git
- Python3 - 獲取資料夾中的檔案列表Python
- c/c++、matlab讀取資料夾下的檔案C++Matlab
- 用python寫一個指令碼:將指定目錄下及其所有子資料夾的所有的“srt”檔案的內容合併到一個新的srt檔案中Python指令碼
- 【Linux】linux下刪除/清空資料夾/檔案命令Linux
- 利用scp 遠端上傳下載檔案/資料夾
- C# 將資料夾中檔案複製到另一個資料夾C#