メインコンテンツへスキップ
【Python】os.walkでフォルダを再帰的に探索する

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

·2 分
Programming Python
かずさプログラマー
著者
かずさプログラマー
業務の作業自動化を行っています。Go、VBA、Pythonを主に使用しています。過去にはC#、VB.Net、JavaScriptも使用していました。
目次

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

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

C:\python-os-walk\
├─Directory1
│  │-text1.txt
│  └ text2.txt
└─Directory2
    │-text1.txt
    └ text2.txt</pre>

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

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

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

import os

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

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

C:\python-os-walk\Directory1\text1.txtの内容は以下になります。
これはDirectory1のtext1.txtです。

C:\python-os-walk\Directory1\text2.txtの内容は以下になります。
これはDirectory1のtext2.txtです。

C:\python-os-walk\Directory2\text1.txtの内容は以下になります。
これはDirectory2のtext1.txtです。

C:\python-os-walk\Directory2\text2.txtの内容は以下になります。
これはDirectory2のtext2.txtです。

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

参考
#

関連記事

【Python】if element not in Listと書きましょう
·2 分
Programming Python
【Python】Dictionary(辞書)から値を削除するときdelとpopメソッドどっちを使う?
·1 分
Programming Python
Pythonコードをexe化
·4 分
Programming Python