」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何使用 os.walk() 函數在 Python 中遞歸讀取資料夾內容?

如何使用 os.walk() 函數在 Python 中遞歸讀取資料夾內容?

發佈於2024-11-08
瀏覽:411

How to Recursively Read Folder Contents in Python Using the os.walk() Function?

在Python 中遞歸讀取資料夾內容

在Python 中,嘗試遞歸遍歷目錄來讀取文字檔案時可能會遇到問題。一個常見的問題是程式碼只針對單一目錄層級起作用。

理解 os.walk 函數

Python 遞歸資料夾遍歷的核心在於 os .walk() 函數。它迭代指定的目錄及其子目錄,傳回三個值:root、subdirs 和 files。

  • root :正在處理的目前目錄。
  • subdirs :目前目錄中的目錄Directory.
  • files : 目前目錄中的檔案(不是目錄) Directory.

最佳化資料夾遍歷

要遞歸遍歷目錄,您應該迭代os.walk() 傳回的子目錄清單。對於每個子目錄,您可以遞歸呼叫 os.walk() 來處理其內容。

改進的 Python 程式碼

可以修改範例程式碼以處理多個目錄層級:

import os
import sys

walk_dir = sys.argv[1]

for root, subdirs, files in os.walk(walk_dir):
    for subdir in subdirs:
        # Process subdirectory: call os.walk() recursively for subdir
        for sub_subdir, sub_subfiles, _ in os.walk(os.path.join(root, subdir)):
            # Process subdirectories and files in subdirectory

其他最佳實踐

  • 使用os.path.join()進行路徑連接,而不是手動字符串操作。
  • 考慮使用 os.path.abspath() 將腳本參數轉換為絕對路徑穩定性。
  • 利用 with 語句來簡化文件處理並確保自動清理。
版本聲明 本文轉載於:1729233616如有侵犯,請洽[email protected]刪除
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3