ホームページ  >  記事  >  バックエンド開発  >  Python の os.walk() 関数を使用する場合、ファイルとディレクトリを効果的に区別するにはどうすればよいですか?

Python の os.walk() 関数を使用する場合、ファイルとディレクトリを効果的に区別するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-07 21:47:02522ブラウズ

How can I effectively distinguish between files and directories when using Python's os.walk() function?

再帰的なディレクトリ探索に Python の os.walk() を利用する

Python では、ディレクトリを再帰的に走査することは、ファイル管理などのタスクにとって重要なタスクですそしてディレクトリ操作。多用途の os.walk() 関数は、この目的のための堅牢なソリューションを提供します。

ディレクトリを移動するとき、多くの場合、ファイルとディレクトリを区別することが重要です。ただし、os.walk() 関数はデータを異なる方法で表示します。これに対処するには、追加のツールを活用する必要があります。

これを例として、次のコード スニペットを考えてみましょう。

import os
import fnmatch

for root, dir, files in os.walk("."):
    print(root)
    print("")
    for items in fnmatch.filter(files, "*"):
        print("..." + items)
    print("")

このコードを実行すると、現在のディレクトリの構造が出力され、その後に次のコードが出力されます。各ディレクトリ内のファイル。ただし、この構造は、ファイルとディレクトリが明確に区別される目的の形式と一致していません。

目的の出力を実現するには、わずかに変更された os.walk() 実装を使用する別のアプローチが必要です。

import os

for root, dirs, files in os.walk("."):
    path = root.split(os.sep)
    print((len(path) - 1) * '---', os.path.basename(root))
    for file in files:
        print(len(path) * '---', file)

この修正されたコードは、ルート ディレクトリのパスを個々のコンポーネント (パス) に分割し、コンポーネントの数をカウントして現在のディレクトリの深さを決定します。この深さは、ディレクトリ名とその中のファイルを適切に視覚化するためにインデントするために使用されます。したがって、最終出力には、ディレクトリとファイルが明確に分離された階層表現が反映されます。

以上がPython の os.walk() 関数を使用する場合、ファイルとディレクトリを効果的に区別するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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