Python OS庫中的Walkdir方法如何遍歷文件夾以查找特定文件

一、什麼是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

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
TYXAX的頭像TYXAX
上一篇 2025-01-16 15:46
下一篇 2025-01-16 15:46

相關推薦

發表回復

登錄後才能評論