問題ステートメント
サブフォルダーを再帰的に検索しているときに、Python スクリプトで問題が発生しました。特定の拡張子を持つファイル。スクリプトは、見つかったファイルのリストを作成することを目的としていますが、スクリプトによって取得されたサブフォルダーは、見つかったファイルを含むフォルダーを表すのではなく、リスト内にあります。
Solution
この問題を解決するには、subFolder 変数の代わりに、提供されたコードの「root」変数で表される dirpath を使用する必要があります。 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 中国語 Web サイトの他の関連記事を参照してください。