如何使用Python有效率地尋找子資料夾中的所有「.txt」檔案?

Patricia Arquette
發布: 2024-10-29 19:28:02
原創
859 人瀏覽過

How to Efficiently Find All

如何有效地遞歸搜尋子資料夾中的特定檔案類型

編寫腳本時,通常需要深入搜尋主資料夾中的子資料夾。在Python中,os.walk函數可以遞歸地遍歷目錄。但是,僅提取特定類型的文件可能很棘手。

在提供的範例中,目標是建立主資料夾及其子資料夾中所有「.txt」檔案的清單。程式碼使用 os.walk 迭代所有檔案和子資料夾,但 subFolder 保存子資料夾列表,而不是每個檔案的正確子資料夾。

要解決此問題,需要使用「root」變量,它表示目前應使用目錄路徑而不是子資料夾。每個檔案都有其對應的根目錄,表示其在檔案系統中的位置。

這是一個最佳化的解決方案:

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']
登入後複製

此程式碼會迭代檔案系統中的所有根目錄、子目錄和檔案路徑資料夾。帶有“.txt”副檔名的檔案將會加入到結果清單中。

或者,glob 模組可以簡化基於擴展名的選擇:

from glob import glob
result = [y for x in os.walk(PATH) for y in glob(os.path.join(x[0], '*.txt'))]
登入後複製

對於Python 3.4 ,更簡潔的解決方案可以使用Pathlib:

from pathlib import Path
result = list(Path(".").rglob("*.[tT][xX][tT]"))
登入後複製

這些解決方案可以有效地搜尋子資料夾,根據副檔名提取文件,並將它們作為清單傳回。

以上是如何使用Python有效率地尋找子資料夾中的所有「.txt」檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!