-
1 # 太科羅技
-
2 # 小小猿愛嘻嘻
這裡以精確查詢、模糊查詢和特定查詢3種查詢為例,簡單介紹一下python是如何查詢檔案的,主要用到python自帶的模組os(walk函式),感興趣的朋友可以自己嘗試一下,實驗環境win10+python3.6+pycharm2018,主要內容如下:
精確查詢這個是最簡單的,直接使用os.walk函式遍歷目標目錄,如果查詢到的檔名與輸入的檔名相同,則返回檔案完整路徑,測試程式碼如下,os.walk函式會返回一個三元組,分別為查詢的目標目錄、查詢的目標目錄子目錄(list列表)和查詢的目標目錄檔案(list列表),這裡使用os.path.join函式拼接為檔案完整路徑,輸入引數分別為查詢的目標目錄和目標檔案:
模糊查詢這裡只需要對上面的程式碼稍微修改一下就行,如果在檔名中查詢到輸入的子串(模糊匹配到檔名中存在這個字串),則返回檔案完整路徑,測試程式碼如下,非常簡單:
特定查詢這裡主要是查詢特定型別的檔案,基本程式碼和前面2個的查詢是一樣的,只需要在檔名中匹配特定字尾就行,如果是,則返回檔案完整路徑,測試程式碼如下,主要用到string字串自帶的endswith函式:
main函式呼叫最後就是在main函式中呼叫上面的3個查詢函式,測試程式碼如下,一個while迴圈,1為精確查詢,2為模糊查詢,3為特定查詢,最後將查詢的結果以藍色打印出來,這裡的查詢目錄可以人為指定,也可以設定為input輸入獲取:
程式執行截圖如下,已經成功查詢到對應檔案:
至此,我們就完成了利用python來搜尋檔案。總的來說,這3種方式都非常簡單,主要用到os.walk這個函式,其他的只需要稍微修改一下就行,只要你有一定的python基礎,熟悉一下上面的程式碼和示例,多除錯幾遍程式,很快就能掌握的,後期改進的話,你也可以新增一個GUI介面(tkinter、pyqt等),使用起來能更方便,網上也有相關教程和資料,介紹的非常詳細,感興趣的話,可以搜一下,希望以上分享的內容能對你有所幫助吧,也歡迎大家評論、留言進行補充。
-
3 # 軟體測試開發技術棧
使用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檔案
search("D:\learn\config.yml")模糊查詢查詢 D:\learn 目錄下檔名以c開頭的yml檔案,支援前模糊、後模糊、全模糊。
search("D:\learn\c*.yml")查詢結果如下:
["D:\learn\config.yml", "D:\learn\config1.yml"]範圍查詢查詢D:\learn目錄下檔案格式為 .jpg 的檔案
search("D:\learn", ".jpg")查詢結果如下:
["D:\learn\1.jpg", "D:\learn\12.jpg"]
回覆列表
python實現檔案搜尋應該是很簡單的,先用Python讀取指定資料夾,將所有檔名裝在一個list裡面,然後遍歷查詢所需要的檔案即可。