ディレクトリの全部のファイルを一覧表示するのってどうすればいい? [Python]

このエントリーをはてなブックマークに追加

質問:

Pythonでディレクトリ内のすべてのファイルをリストアップして、リストに追加するのってどうやるの?

By duhhunjonn | 質問日時: Jul 8 ‘10 at 19:31



回答1:

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つのリストを生成する — ファイルとディレクトリに分けてくれるんだ。
トップディレクトリのみが必要な場合は、1回目のループでbreakすればいいよ。

from os import walk
f = []
for (dirpath, dirnames, filenames) in walk(mypath):
f.extend(filenames)
break

最後に、下の例のように、あるリストを別のリストに追加するには、
.extend()を使うか、下の方法みたいにするか:

>>> q = [1, 2, 3]
>>> w = [4, 5, 6]
>>> q = q + w
>>> q
[1, 2, 3, 4, 5, 6]

個人的には、 .extend()の方が好みだけど。

By pycruft | 回答日時: Jul 8 ‘10 at 21:01



回答2:

僕ははglobモジュールを使用する方が好きかな。
パターンマッチングと展開が行われるから。

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

上は、クエリーされたファイルを含むリストを返すよ:

['/home/adam/file1.txt', '/home/adam/file2.txt', .... ]

By adamk | 回答日時: Jul 9 ‘10 at 18:13



回答3:

import os
os.listdir("somedirectory")

これは、”somedirectory”内のすべてのファイルとディレクトリのリストを返す。

By sepp2k | 回答日時: Jul 8 ‘10 at 19:35



Source: How do I list all files of a directory?

共有 コメント