【Python】os.walkでフォルダを再帰的に探索する

Pythonでフォルダ内を再帰的に探索するにはosモジュールのwalkメソッドを使用します。

C:\python-os-walk配下にフォルダ2つがあります。
それぞれのフォルダに2つのテキストが入っています。

1C:\python-os-walk\
23├─Directory1
4│  │-text1.txt
5│  └ text2.txt
67└─Directory2
8    │-text1.txt
9    └ text2.txt</pre>

4つのテキストに書かれている内容をpythonのos.walkを使用して表示します。

os.walkを使用してフォルダ内を探索するコード

os.walkで各フォルダ内を探索してテキストの内容を表示するコードは以下になります。

 1import os
 2
 3for root, dirs, files in os.walk('C:\\python-os-walk'):
 4    for file in files:
 5        _, ext = os.path.splitext(file)
 6        if ext == '.txt':
 7            file_path = os.path.join(root, file)
 8            print('{}の内容は以下になります。'.format(file_path))
 9            with open(file_path, encoding='utf-8') as f:
10                print(f.read())
11                print()

コードを実行するとサブフォルダ内のテキストのパスとテキストの内容を表示します。

 1C:\python-os-walk\Directory1\text1.txtの内容は以下になります。
 2これはDirectory1のtext1.txtです。
 3
 4C:\python-os-walk\Directory1\text2.txtの内容は以下になります。
 5これはDirectory1のtext2.txtです。
 6
 7C:\python-os-walk\Directory2\text1.txtの内容は以下になります。
 8これはDirectory2のtext1.txtです。
 9
10C:\python-os-walk\Directory2\text2.txtの内容は以下になります。
11これはDirectory2のtext2.txtです。

os.walkを使用すれば、フォルダ内を再帰的に探索するコードを自分で作成する必要がありません。
フォルダ内を探索する必要があるなら、ぜひ、os.walkを使用しましょう。

参考

https://docs.python.jp/3/library/os.html

関連ページ