問題陳述
Python 腳本在遞歸搜尋子資料夾時遇上到問題具有特定擴展名的檔案。該腳本旨在創建找到的文件的列表,但腳本檢索到的子資料夾位於列表中,而不是代表包含找到的文件的資料夾。
解決方案
要解決此問題,應使用所提供程式碼中的「root」變數表示的 dirpath,而不是 subFolder 變數。 dirpath 包含所定位檔案所在目錄的絕對路徑。
程式碼片段
以下修改後的Python 程式碼示範了dirpath 的正確用法:
<code class="python">import os result = [os.path.join(dp, f) for dp, dn, filenames in os.walk(PATH) for f in filenames if os.path.splitext(f)[1] == '.txt']</code>
透過採用此修改,程式碼將有效地遞歸遍歷子資料夾並建立具有所需副檔名的檔案列表,每個檔案路徑包括其所屬的資料夾。
其他選項
除了主要解決方案之外,還提供了使用glob 模組或Python 3.4 及更高版本的Python 內建pathlib 模組的替代方法,以提供更全面的選項。
結論
修改後的腳本可以準確識別並列出指定資料夾及其子資料夾中具有指定副檔名的文件,為Python 中的遞歸文件搜尋提供強大的解決方案。
以上是如何在Python中遞歸地從子資料夾中檢索檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!