あるディレクトリのすべてのファイルをリストアップするにはどうしたらいいですか?

Pythonで、あるディレクトリのすべてのファイルをリストアップし、listに追加するには?

os.listdir()は、ファイルやディレクトリなど、ディレクトリ内にあるものをすべて取得します。

ファイルだけを取得したい場合は、os.pathを使ってフィルタリングすることができます。

from os import listdir
from os.path import isfile, join
onlyfiles = [f for f in listdir(mypath) if isfile(join(mypath, f))]

また、os.walk()`を使えば、訪問したディレクトリごとに2つのリストを作成し、ファイルとDirに分けてくれます。一番上のディレクトリだけが必要な場合は、最初に次のような結果が出たときにブレークすることができます。

from os import walk

f = []
for (dirpath, dirnames, filenames) in walk(mypath):
    f.extend(filenames)
    break
解説 (6)

私は、パターンマッチングと展開を行うglob`モジュールを好んで使用しています。

import glob
print(glob.glob("/home/adam/*.txt"))

照会されたファイルのリストが返されます。

['/home/adam/file1.txt', '/home/adam/file2.txt', .... ]
解説 (4)
import os
os.listdir("somedirectory")

と入力すると、"somedirectory "内のすべてのファイルとディレクトリのリストが返されます。

解説 (3)