Python で再帰的なサブフォルダーからファイルを効率的に一覧表示する方法

Barbara Streisand
リリース: 2024-10-31 22:07:17
オリジナル
656 人が閲覧しました

How to Efficiently List Files from Recursive Subfolders in Python?

ファイルをリストするための再帰的サブフォルダー検索: プロセスを調整する方法

サブフォルダーを検索して特定のファイル タイプのリストを作成する場合、サブフォルダーが変数は正しいフォルダーを指しています。次のコード スニペットは、この問題を示しています。

<code class="python">for root, subFolder, files in os.walk(PATH):
    for item in files:
        if item.endswith(".txt"):
            fileNamePath = str(os.path.join(root, subFolder, item))</code>
ログイン後にコピー

ここで、subFolder 変数には、ITEM ファイルが存在するフォルダーではなく、サブフォルダーのリストが含まれています。これを修正するには、正しいディレクトリ パスを保持するルート変数で表される 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>
ログイン後にコピー

もう 1 つの洗練されたアプローチは、拡張子に基づいてファイルを効率的に選択する glob モジュールを利用することです:

<code class="python">from glob import glob
result = [y for x in os.walk(PATH) for y in glob(os.path.join(x[0], '*.txt'))]</code>
ログイン後にコピー

Python 3.4 以降のオファーglob ベースのソリューションのジェネレーター バージョン:

<code class="python">from itertools import chain
result = (chain.from_iterable(glob(os.path.join(x[0], '*.txt')) for x in os.walk('.')))</code>
ログイン後にコピー

最後に、Python 3.4 の場合、 pathlib モジュールを使用した最新のアプローチは次のとおりです:

<code class="python">from pathlib import Path
result = list(Path(".").rglob("*.[tT][xX][tT]"))</code>
ログイン後にコピー

以上がPython で再帰的なサブフォルダーからファイルを効率的に一覧表示する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!