ホームページ >バックエンド開発 >Python チュートリアル >os.walk() 関数を使用して Python でフォルダーの内容を再帰的に読み取る方法

os.walk() 関数を使用して Python でフォルダーの内容を再帰的に読み取る方法

Susan Sarandon
Susan Sarandonオリジナル
2024-10-18 14:42:301076ブラウズ

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

Python でのフォルダーの内容の再帰的読み取り

Python では、ディレクトリを再帰的に走査してテキスト ファイルを読み取ると、問題が発生する可能性があります。よくある問題は、単一のディレクトリ レベルでのみ機能するコードです。

os.walk 関数を理解する

Python の再帰的フォルダー トラバーサルの核心は OS にあります。 .walk()関数。指定されたディレクトリとそのサブディレクトリを反復処理し、root、subdirs、files の 3 つの値を返します。

  • root : 処理中の現在のディレクトリ。
  • subdirs : 現在のディレクトリ内のディレクトリdirectory.
  • files : 現在のディレクトリ内のファイル (ディレクトリではありません)。

フォルダー トラバーサルの最適化

ディレクトリを再帰的にトラバースするには、 os.walk() によって返されるサブディレクトリのリストを反復処理する必要があります。サブディレクトリごとに、os.walk() を再帰的に呼び出して、その内容を処理できます。

改良された Python コード

サンプル コードは、複数のディレクトリを処理するように変更できます。レベル:

<code class="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</code>

追加のベスト プラクティス

  • パスの連結には、手動の文字列操作ではなく os.path.join() を使用します。
  • 安定性を高めるために、os.path.abspath() を使用してスクリプト引数を絶対パスに変換することを検討してください。
  • with ステートメントを利用してファイル処理を簡素化し、自動クリーンアップを確実にします。

以上がos.walk() 関数を使用して Python でフォルダーの内容を再帰的に読み取る方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。