一、什麼是Walkdir方法
在Python開發中,經常需要去查找某個文件,特別是在某個文件夾下遞歸查找。Python中的os模塊提供了一個非常方便的方法——Walkdir方法。Walkdir方法可遍歷一個目錄樹,從頂部到底部,為每個目錄返回一個3元組,包括當前文件夾、當前文件夾中的子文件夾以及當前文件夾中的文件。使用Walkdir方法,我們可以快速地找到指定目錄下的文件,或者查找包含特定字元串的文件。
二、Walkdir方法的使用
Walkdir方法的基本語法如下:
for root, dirs, files in os.walk(top, topdown=True, onerror=None, followlinks=False): # 遍歷目錄樹,返回目錄路徑、子目錄列表和文件名列表。 # root: 此次遍歷的目錄 # dirs: 此次遍歷的目錄下的子目錄 # files: 此次遍歷的目錄下的文件
其中,參數 top為起始目錄的路徑(默認為當前目錄),topdown表示是否按照自頂向下(默認)的順序遍歷文件夾,onerror表示如果訪問目錄時出錯,所執行的函數,followlinks表示是否跟蹤符號鏈接(默認為False)。當函數提供一個目錄的名稱時,它生成一個由3個元素組成的元組。
三、遍歷文件夾查找指定文件
Walkdir方法可用於遞歸遍歷文件夾,查找指定文件。下面是一個簡單的例子,用來查找指定目錄(本例為項目根目錄下的files目錄)內所有擴展名為txt的文件:
import os txt_files = [] for root, dirs, files in os.walk("./files"): for file in files: if file.endswith(".txt"): txt_files.append(os.path.join(root, file)) print(txt_files)
在這個例子中,我們逐個檢查遍歷得到的所有文件,如果文件名以.txt為結尾,則將文件的完整路徑添加到txt_files數組中。最後輸出數組中包含的所有txt文件。需要注意的是,在將文件路徑加入到列表中時,需要使用 os.path.join() 方法將文件夾名和文件名拼接成完整路徑。
四、查找包含特定字元串的文件
除了查找指定類型的文件外,Walkdir方法還可用於查找包含特定字元串的文件。以下是一個簡單的例子,用來查找指定目錄(本例為項目根目錄下的files目錄)內所有文件中包含特定字元串「hello world」的文件:
import os search_str = "hello world" for root, dirs, files in os.walk("./files"): for file in files: file_path = os.path.join(root, file) with open(file_path, 'r') as file: if search_str in file.read(): print(file_path)
在這個例子中,我們使用 with open() 打開每個文件,通過讀取文件內容的方式來判斷是否包含了特定字元串。需要注意的是,在使用完一個文件後,一定要記得關閉文件,以釋放系統資源。
五、總結
在Python開發中,Walkdir方法可用於高效地查找指定類型的文件或者包含特定字元串的文件。需要注意的是,在使用Walkdir方法時,要注意程序執行期間的系統資源使用情況,並及時地關閉文件。
原創文章,作者:TYXAX,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/331239.html