Python os.path.walk() 方法



Python 的 os.path.walk() 方法用於遞迴遍歷目錄樹,生成目錄路徑、目錄名稱和目錄樹中的檔名。它允許您迭代指定目錄及其子目錄中的所有目錄和檔案。

  • 該方法首先接受頂級目錄作為輸入。
  • 然後,它開始遍歷目錄樹,從指定的頂級目錄開始。
  • 對於遍歷過程中遇到的每個目錄,該方法都會產生一個包含有關該目錄資訊的元組。
  • 在生成當前目錄的資訊後,該方法會遞迴遍歷該目錄中找到的每個子目錄。
  • 遍歷繼續進行,直到訪問目錄樹中的所有目錄和子目錄。
  • 遍歷完成後,該方法返回,並且對目錄樹的迭代停止。
自 Python 3.0 起,os.path.walk() 方法已棄用。相反,您應該在 Python 中使用 os.walk() 進行目錄樹遍歷。

語法

以下是 Python os.path.walk() 方法的基本語法:

os.walk(top, topdown = True, onerror = None, followlinks = False)

引數

此方法接受以下引數:

  • top − 這是表示要從中開始遍歷的根目錄的字串。

  • topdown (可選) − 這是一個布林值,用於確定是自頂向下還是自底向上遍歷目錄。預設情況下,它設定為 True,這意味著遍歷是自頂向下的。

  • onerror (可選) − 這是一個函式,當遍歷過程中發生錯誤時,它會與錯誤引數一起被呼叫。預設情況下,它設定為 None。

  • followlinks (可選) − 這是一個布林值,用於確定是否跟隨符號連結。預設情況下,它設定為 False。

返回值

該方法返回一個生成器,它為以 top 為根的目錄樹中的每個目錄生成一個 3 元組 (dirpath, dirnames, filenames)。

示例

在下面的示例中,我們使用 splitunc() 方法將 UNC 路徑 "C://Users//Lenovo//Desktop//file.txt" 分割為其 UNC 掛載點和路徑的其餘部分:

import os
def visit(arg, dirname, names):
    print "Directory:", dirname
    print "Files:", names
os.path.walk("C://Users//Lenovo//Documents//", visit, None)

輸出

以下是上述程式碼的輸出:

Directory: C://Users//Lenovo//Documents//
Files: ['desktop.ini', 'Double_doubleToLongBits.html', 'ezyZip.zip', 'file.txt']
Directory: C://Users//Lenovo//Documents//Custom Office Templates
Files: []
os_path_methods.htm
廣告