用Python实现目录遍历及文件搜索
前面我們已經(jīng)掌握了目錄的創(chuàng)建、修改和刪除方法,但是要開發(fā)文件資源管理器程序,僅有這些知識(shí)還是不夠的。我們還有下面的問題需要解決:如何遍歷目錄中所有的文件?如何在目錄中搜索到指定的文件?當(dāng)目錄中有子目錄時(shí)該如何處理?
如何遍歷目錄中所有的文件?
遍歷就是對(duì)目錄中的所有文件按順序逐個(gè)訪問。例如程序要求列出某個(gè)目錄中所有的文件名稱,我們就需要訪問這個(gè)目錄中所有的文件并獲取文件的名稱,然后將獲取的文件名稱輸出到屏幕上。
那么,我們?nèi)绾伪闅v目錄中所有的文件呢?Python語言的OS模塊為我們提供了兩個(gè)列出目錄中所有文件的方法
例1:使用listdir遍歷目錄文件
例1使用OS模塊的listdir方法遍歷D盤盤符下的pub目錄,listdir返回一個(gè)列表,列表包含pub目錄下所有文件名稱,然后使用for循環(huán)輸出列表。
?
從例1的輸出結(jié)果可以看出,listdir方法僅返回了文件名稱,如果我們需要輸出文件的整個(gè)路徑,該如何處理呢?只需要使用os模塊下的join方法連接遍歷的目錄路徑和文件名稱就可以了。修改例1的代碼如下:
?
從上圖輸出結(jié)果可以看出,pub目錄下的所有文件以完整路徑輸出。但有一個(gè)問題,就是在pub目錄下有doc子目錄,該子目錄下的文件并沒有列出,下面我們將討論當(dāng)目錄包含子目錄時(shí)該如何處理?
當(dāng)目錄中有子目錄時(shí)該如何處理?
在例1中要遍歷的pub目錄下面有doc子目錄,例1的程序并沒有列出doc子目錄下的文件,我們現(xiàn)在希望也能遍歷doc子目錄下的文件。這時(shí)我們就要使用walk方法了,walk方法可以遞歸遍歷目錄下面的所有文件和子目錄。
例2:使用walk遞歸遍歷目錄文件
例2中使用walk方法遞歸遍歷目錄文件,walk方法會(huì)返回一個(gè)三元組,分別是root、dirs和files。其中root是當(dāng)前正在遍歷的目錄路徑;dirs是一個(gè)列表,包含當(dāng)前正在遍歷的目錄下所有的子目錄名稱,不包含該目錄下的文件;files也是一個(gè)列表,包含當(dāng)前正在遍歷的目錄下所有的文件,但不包含子目錄。
前面我們實(shí)現(xiàn)了在指定的目錄中遍歷所有文件,也包括子目錄的遍歷,下面我們來看看如何在指定的目錄中搜索文件。
如何在指定的目錄中搜索文件?
實(shí)現(xiàn)在指定的目錄中搜索文件,主要實(shí)現(xiàn)思路是使用walk方法遞歸遍歷要搜索的目錄,在遞歸遍歷過程中,使用for循環(huán)遍歷walk方法返回的files列表,判斷files列表中的文件名稱是否和要搜索的文件名稱相同,若相同就輸出該文件。
例3:在指定的目錄中搜索文件
例3使用walk方法遞歸遍歷pub目錄,使用walk方法主要是考慮到pub目錄下有子目錄,也需要在子目錄中搜索文件。
總結(jié)
以上是生活随笔為你收集整理的用Python实现目录遍历及文件搜索的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 打造高效能研发团队的 5 个关键步骤
- 下一篇: Python 之嵌套列表