サブディレクトリを取得する方法

Pythonでカレントディレクトリのサブディレクトリを一覧化する方法にはいくつかの手法があります。基本的には、ospathlibモジュールを利用します。

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モジュールを使うことで、ディレクトリ内のサブディレクトリを簡単に取得できます。用途に応じて、効率的な方法を選んで活用しましょう。