Pythonマニア

Pythonを楽しむ!

Archive List for Python 関数

Pythonのos.walkでディレクトリツリーを再帰的に辿る

あるディレクトリに含まれるすべてのディレクトリやファイルを処理する場合、osモジュールのos.walk()関数を使うのが簡単です。 Pythonのos.walk()関数は指定されたディレクトリを起点(ルート)として、そこに含まれるディレクトリツリーを再帰的に辿ります。 サンプルとして次のようなディレクトリツリーを例に見ていきましょう。 test_dir/ ├── dir1 │ ├── file1-1 │ └── file1-2 ├── dir2 │ ├── file2-1 │ ├── file2-2 │ └── subdir │ └── subfile └── tmp -> /var/tmp(ディレクトリへのリンク) ツリーのすべてのディレクトリを辿る まずは、os.walk()関数の基本的な動作を見ていきましょう os.walk()関数を呼び出すとジェネレータオブジェクトを返します。 このジェネレータはイテレートされるたびに、辿っているディレクトリの情報を含むタプル(dirpath, dirnames, filenames)を返します。タプルのそれぞれの要素は次の通りです。 dirpath ディレクトリのパス(文字列) dirnames ディレクトリに含まれるディレクトリのリスト(文字列のリスト) filenames ディレクトリに含まれるファイルのリスト(文字列のリスト) 実際に例を見た方が理解が早いでしょう次の例はforでイテレートするごと、ジェネレータから返されるタプルを表示します。 >>> import os >>> for root, dirs, files in os.walk('test_dir'): ... print('root […]