【Python】ファイル・ディレクトリの一覧を取得する方法を紹介!「os.listdir」

こんにちは!

皆さんは、Pythonでファイル・ディレクトリの一覧を取得したいと思ったことはありませんか?

Python初心者
今あるディレクトリを使いたい時とかに便利だね!

Pythonでファイル・ディレクトリの一覧を取得するのは、osモジュールの「listdir()」を使うと簡単にできますよ。

今回の記事では、以下の内容について紹介します。

  • ファイル・ディレクトリの一覧を取得する方法
  • ファイルのみの一覧を取得する方法
  • ディレクトリのみの一覧を取得する方法

ファイル・ディレクトリの一覧の取得

osモジュールの「listdir()」を用いると、Pythonでファイル・ディレクトリの一覧を取得することができます。

osモジュールはPythonの標準ライブラリのためインストールの必要はありません。

では早速ファイル・ディレクトリの一覧を取得してみましょう。

import os

print(os.listdir("testdir/"))

実行結果

['test1.txt', 'test2.txt', 'dir2', 'dir1']

このようにリスト形式でファイル・ディレクトリの一覧が取得されます。

次は、ファイルのみ・ディレクトリのみの一覧の取得方法を見てみましょう。

ファイルのみの一覧の取得

ファイルのみの一覧の取得には、「isfile()」を使います。

流れとしては、listdir()でファイル・ディレクトリの一覧を取得し、そのリスト内のものが、isfile()でファイルかどうかの判定を行います。

import os

path = "testdir/"
list = os.listdir(path)

file_list = [f for f in list if os.path.isfile(os.path.join(path, f))]
print(file_list)

解説

path = “testdir/”
list = os.listdir(path)
指定したパスのファイル・ディレクトリの一覧を取得します。
file_list = [f for f in list if os.path.isfile(os.path.join(path, f))]
リスト内包表記を用い、先ほど取得したリスト内の要素が、ファイルかどうか判定し、ファイルであればリストに保存します。

実行結果

['test1.txt', 'test2.txt']

ファイルのみのリストが取得できていますね!

ディレクトリのみの一覧の取得

ディレクトリのみの一覧の取得には、「isdir()」を使います。

ファイルのみの一覧の取得の際と同様の流れで取得します。

import os

path = "testdir/"
list = os.listdir(path)

file_list = [f for f in list if os.path.isdir(os.path.join(path, f))]
print(file_list)

実行結果

['dir2', 'dir1']

ディレクトリのみのリストが取得できていますね!

まとめ

今回の記事では、以下の内容について紹介しました。

  • ファイル・ディレクトリの一覧を取得する方法
    「listdir()」を使用
  • ファイルのみの一覧を取得する方法
    「isfile()」を使用
  • ディレクトリのみの一覧を取得する方法
    「isdir()」を使用
Python初心者
簡単にファイルやディレクトリの一覧を取得できたね!

皆さんも、今回紹介した内容をしっかりと覚えて様々な場面に役立てましょう!