Python中的os.walk()函數是一個偉大的工具,可以用來迭代遍歷指定目錄下的所有文件夾及其子文件夾。本文將提供對Python os.walk函數的詳細介紹和代碼示例,幫助讀者理解其實現的原理。
一、os.walk()函數介紹
os模塊提供多個有關文件和目錄操作的函數,其中os.walk()函數與os.listdir()函數不同,os.walk()可以返回指定目錄及其所有子目錄的文件名和目錄名,os.listdir()只返回指定目錄下的文件名。
os.walk()參數介紹:
os.walk()的第一個參數是欲遍歷的目錄的路徑字元串,該函數會自動遞歸到它的所有子目錄中。第二個參數topdown默認為True表示首先返回目錄下的文件,然後是目錄。False表示首先返回目錄列表,然後是文件列表。第三個參數onerror可以設為函數,以在遇到錯誤時發生什麼。
二、使用os.walk()函數
下面是一個簡單的使用os.walk()函數的示例,它列印出從一個指定的目錄開始的所有子目錄中的所有文件名和目錄名。
import os for root, dirs, files in os.walk("/"): for file in files: print(os.path.join(root, file)) for dir in dirs: print(os.path.join(root, dir))
運行此代碼,將從「/」目錄開始遍歷整個系統的文件。如果希望僅遍歷特定的目錄,只需將os.walk()中的第一個參數更改為所需的目錄路徑。
三、os.walk()函數的應用
1)在指定目錄中查找特定擴展名的文件
以下示例演示如何在指定目錄中遞歸查找具有指定擴展名的所有文件並將它們列印出來。
import os def find_files(directory, extension): for root, dirs, files in os.walk(directory): for file in files: if file.endswith(extension): print(os.path.join(root, file)) # Example find_files('.', '.jpg')
2)在指定目錄中查找特定文件名的文件
以下示例演示如何在指定目錄中遞歸查找特定文件名的文件並將它們列印出來。
import os def find_files(directory, filename): for root, dirs, files in os.walk(directory): if filename in files: print(os.path.join(root, filename)) # Example find_files('.', 'index.html')
3)在指定目錄中刪除指定擴展名的文件
以下示例演示如何遞歸查找指定目錄中擴展名為.txt的所有文件並將其刪除。
import os def delete_files(directory, extension): for root, dirs, files in os.walk(directory): for file in files: if file.endswith(extension): os.remove(os.path.join(root, file)) # Example delete_files('.', '.txt')
總結
os.walk()是Python有用的文件和目錄操作函數之一。使用os.walk()函數可以迭代遍歷指定目錄下的所有文件夾及其子文件夾。本文提供了os.walk()函數的詳細介紹和代碼示例,可供讀者參考和練習。當您需要遍歷指定目錄時,使用os.walk()函數可以方便地解決問題。
原創文章,作者:NICH,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/145441.html