Pythonでディレクトリ内のファイル一覧を取得する方法

Pythonでディレクトリ内(フォルダ内)のファイル一覧を取得するには、[os.listdir](https://docs.python.org/3/library/os.html#os.listdir)を利用します。

python
os.listdir(path='.')

os.listdirpathで与えられたディレクトリ内に含まれるすべての名称をリスト形式で返します。

python
from os import listdir

mypath = "target"

files = [f for f in listdir(mypath)]

返り値は次のようになります。

python
['test01.txt', 'test02.txt']

pathで与えられたディレクトリ内にフォルダがある場合は、そのフォルダの名称も返り値に含まれてしまいます。

python
['test01.txt', 'test02.txt', 'dir']

そのため、ファイルのみを取得するために、isfileを利用します。

python
from os import listdir
from os.path import isfile, join

mypath = "target"

files = [f for f in listdir(mypath) if isfile(join(mypath, f))]

isfilefと指定しまうと、listdirによって取得した名称をワーキングディレクトリから参照してしまうことになりますので注意しましょう。

関連記事