ホームページ >バックエンド開発 >Python チュートリアル >Python フォルダー内のファイルを再帰的に読み取り、コンテンツを書き込む方法

Python フォルダー内のファイルを再帰的に読み取り、コンテンツを書き込む方法

Barbara Streisand
Barbara Streisandオリジナル
2024-10-18 14:39:02590ブラウズ

How to Recursively Read Files and Write Content in Python Folders?

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

Python では、ディレクトリやファイルの検索などの OS 操作を os モジュールで実行できます。フォルダー構造内のファイルからコンテンツを再帰的に読み取るには、os.walk を利用できます。

以下のスニペットは、フォルダーとそのサブディレクトリを再帰的に探索し、テキスト ファイルを開いてその内容を読み取る方法を示しています。

<code class="python">import os

def read_folder_recursively(rootdir):
    for root, subdirs, files in os.walk(rootdir):
        for folder in subdirs:
            # Define the output file path within the current subfolder
            outfileName = os.path.join(root, folder, "py-outfile.txt")
            with open(outfileName, 'w') as folderOut:
                print("outfileName is " + outfileName)
                for file in files:
                    filePath = os.path.join(root, file)
                    with open(filePath, 'r') as f:
                        toWrite = f.read()
                        print("Writing '" + toWrite + "' to" + filePath)
                        folderOut.write(toWrite)
                    f.close()
            folderOut.close()</code>

改善されたコードの内訳は次のとおりです。

  • 文字列を追加する代わりに、os.path.join を使用してパスを連結します。
  • for の with ステートメントを使用してファイルを開きます。適切なファイル処理。
  • コードの読みやすさを維持するために、適切なインデントと変数名を確保します。
  • 最初のコードで問題を引き起こしていた不要なループを削除します。

これは更新されましたコードは複数のフォルダー深さを正しく処理し、各サブフォルダー内に出力ファイルを動的に作成し、テキスト ファイルのコンテンツを出力ファイルに効果的に書き込みます。

以上がPython フォルダー内のファイルを再帰的に読み取り、コンテンツを書き込む方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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