使用Python進行文件查找的應用場景還是比較多的,比如
- 獲取指定目錄下某個具體的文件
- 獲取指定目錄下具備指定前綴或者後綴的文件
- 獲取指定目錄下指定格式的文件
這裡涉及到文件的精確查詢、模糊查詢、範圍查詢。
設計一個簡單的函數實現上述三種查詢場景
我們主要使用了以下兩個Python模塊。
os 模塊
Python 的 os 模塊封裝了常見的文件和目錄操作。其中使用了以下方法:
- os.walk:遍歷目錄。
- os.path.join:連接目錄與文件名。
- os.path.splitext:分離文件名與擴展名。
- os.path.isdir:判斷給出的路徑是否是一個目錄。
glob 模塊
Python 的 glob 模塊封裝了文件查找匹配操作。其中使用了以下方法:
- glob.glob:返回所有匹配的文件路徑列表。它只有一個參數pathname,定義了文件路徑匹配規則,這裡可以是絕對路徑,也可以是相對路徑。
需要注意的是,glob 模塊pathname參數在Windows下是不區分大小寫的,而在Linux下是區分大小寫的。
代碼設計如下
接下來,我們試一下 該函數是否滿足上述三個文件查找場景
精確查詢
查找D:\\learn\\config.yml文件:
模糊查詢
查找D:\\learn目錄下文件名以c開頭的yml文件,支持前模糊、後模糊、全模糊。
查詢結果如下:
範圍查詢
查找D:\\learn目錄下文件格式為.jpg的文件。
查詢結果如下: