サブディレクトリを取得する方法
Python
でカレントディレクトリのサブディレクトリを一覧化する方法にはいくつかの手法があります。基本的には、os
やpathlib
モジュールを利用します。
os.listdir()
とos.path.isdir()
最もシンプルな方法は、os.listdir()
を使ってディレクトリ内の項目を取得し、os.path.isdir()
でディレクトリかどうかを確認する方法です。
import os
subdirs = [d for d in os.listdir('.') if os.path.isdir(d)]
os.scandir()
による効率化
Python
3.5以降では、os.scandir()
を使うことで、ディレクトリ情報をより効率的に取得できます。
import os
subdirs = [entry.name for entry in os.scandir('.') if entry.is_dir()]
この方法はos.listdir()
よりも高速で、ディレクトリとファイルの区別をすぐに行える利点があります。
pathlib
の使用
Python
3.4以降では、pathlib
を使ったオブジェクト指向的なディレクトリ操作が可能です。pathlib
はコードの可読性を高め、よりシンプルな構文でファイル操作が行えます。
from pathlib import Path
subdirs = [d for d in Path('.').iterdir() if d.is_dir()]
再帰的にサブディレクトリを取得する
もし、再帰的にすべてのサブディレクトリを取得したい場合は、os.walk()
が便利です。
import os
subdirs = [x[0] for x in os.walk('.')]
これにより、ネストされたすべてのサブディレクトリが一覧として取得されます。
まとめ
Python
では、os
モジュールやpathlib
モジュールを使うことで、ディレクトリ内のサブディレクトリを簡単に取得できます。用途に応じて、効率的な方法を選んで活用しましょう。