

高岡智則
年齢:33歳 性別:男性 職業:Webディレクター(兼ライティング・SNS運用担当) 居住地:東京都杉並区・永福町の1LDKマンション 出身地:神奈川県川崎市 身長:176cm 体系:細身〜普通(最近ちょっとお腹が気になる) 血液型:A型 誕生日:1992年11月20日 最終学歴:明治大学・情報コミュニケーション学部卒 通勤:京王井の頭線で渋谷まで(通勤20分) 家族構成:一人暮らし、実家には両親と2歳下の妹 恋愛事情:独身。彼女は2年いない(本人は「忙しいだけ」と言い張る)
os.listdirとは何か
os.listdir は Python の os モジュールにある関数で、指定したディレクトリの中身を「名前だけのリスト」として返します。ファイルかディレクトリかの区別はこの関数だけでは分かりません。返ってくるのは文字列の名前の集合で、パスは含まれません。つまり名前だけを並べたいときに便利です。
基本的な使い方
まずは os モジュールを読み込みます。次にディレクトリのパスを渡して、返ってきたリストを使って処理をします。デフォルトの挙動では現在の作業ディレクトリを対象にします。実際のコード例をいくつか見ていきましょう。
コード例1: 現在のディレクトリの中身を表示
import os
items = os.listdir(".")
for item in items:
print(item)
コード例2: 指定したディレクトリの中身をファイル名のみ抽出
import os
from os import path
dir_path = "/path/to/dir"
names = os.listdir(dir_path)
files = [name for name in names if path.isfile(path.join(dir_path, name))]
print(files)
並べ替えとフィルタリング
os.listdir は返り値をそのまま返します。順序は保証されません。必要に応じて sorted を使って並べ替えます。例: <span>sorted_items = sorted(names) と書くと昇順に並べ替えられます。
os.listdir と os.scandir の違い
os.scandir はより新しい関数で、ディレクトリエントリのオブジェクトを返します。これを使うとループ内でファイルタイプの確認を speedily 行え、パフォーマンスが向上します。単純に名前だけ取り出したいときは os.listdir の方がシンプルです。
例外処理と注意点
存在しないディレクトリを指定すると FileNotFoundError、権限がない場所を開こうとすると PermissionError が発生します。これらの例外をキャッチして適切なエラーメッセージを表示するのが安全です。
よくある落とし穴
返された名前にはパスが含まれません。絶対パスが必要な場合は path.join を使って結合します。
実用のヒント
- 既存のファイルとディレクトリを分けて扱いたい場合は os.path で判定。
- 大きなディレクトリでは os.scandir の方が効率的。
- テスト用には仮想ディレクトリを使って練習するのがおすすめ。
- 実際のアプリケーションではエラーハンドリングを忘れずに。
よく使われる表現のまとめ
| 引数 | path: 検索するディレクトリのパス。デフォルトは現在のディレクトリを対象 |
|---|---|
| 戻り値 | list<str>: 指定ディレクトリの名前のリスト。名前のみでパスは含まれない |
| 特徴 | 返り値の順序保証はなし。必要に応じて辞書順に並べ替えが可能 |
まとめ
os.listdir は Python でディレクトリの中身を手軽に調べる基本的な方法です。使い方はシンプルで、エラー処理をきちんと行えば初心者でも安全に活用できます。データの前処理やファイル管理、スクリプトの自動化など、日常のプログラミング作業に役立つ基本スキルとなります。
os.listdirの同意語
- os.listdir
- Pythonのosモジュールにある、指定したディレクトリ内のファイル名とサブディレクトリ名を文字列のリストとして返す関数です。
- listdir
- os.listdirの略称・別名。Pythonでディレクトリ内のエントリ名をリストとして取得する関数を指します。
- ディレクトリ内の中身を列挙する関数
- 指定ディレクトリの中身をファイル名・ディレクトリ名として列挙し、リストで返す機能の説明です。
- ディレクトリのファイル一覧を取得する関数
- ディレクトリ内のエントリ名(ファイル名・ディレクトリ名)を一覧として取得する機能の説明です。
- ディレクトリ内容をリストとして返す関数
- ディレクトリ内のエントリを文字列リストとして返す機能の説明です。
- ディレクトリの中身を一覧表示する方法
- ディレクトリ内の中身を取得して表示する手順や使い方の説明です。
- ディレクトリ一覧を取得する
- 指定ディレクトリにあるエントリ名を一覧として取得する操作の説明です。
- ディレクトリ中身リスト取得
- ディレクトリの中身をリストとして取得することを指す表現です。
- ディレクトリ内エントリの名前リストを得る関数
- ディレクトリ内のエントリ名をリストとして取得する機能の説明です。
- Pythonのディレクトリ一覧取得関数
- Pythonでディレクトリ内のエントリ名を取得する関数の総称です。
- ディレクトリの中身を列挙して得る
- 中身を列挙してリスト化する表現です。
- エントリ名のリストを返す関数
- ディレクトリ内のエントリ名をリストとして返す機能の説明です。
- os.listdir() の呼び出し方
- os.listdir()を呼び出して、ディレクトリ内のエントリ名をリストとして得る方法の説明です。
os.listdirの対義語・反対語
- ファイル一覧を取得しない
- ディレクトリ内のファイル名を列挙して返す os.listdir の機能を意図的に使わない、つまり中身の一覧を得られない状態の対義語的表現。
- ディレクトリ中身を非表示にする
- ディレクトリの中身を表示しないようにする、つまり一覧表示を抑制することを意味する表現。
- ファイル名を隠す
- ファイル名を見せない、露出を抑えることで中身を外部に見せない状態の表現。
- ディレクトリ内のリスト化を抑制する
- ディレクトリ内の中身を一覧として整理して返す動作を抑えることを意味する表現。
- 中身を読み込まない
- ディレクトリの内容情報を取得・読み出さないことを指す表現。
- ファイル一覧を表示させない
- 取得した一覧を表示することを抑制・拒否する表現。
- ディレクトリの中身をスキャンしない
- 中身を調べる・探索する動作を行わないことを意味する表現。
os.listdirの共起語
- os
- Pythonの標準ライブラリモジュール。os.listdirはこのモジュール内の関数で、ディレクトリのエントリ名を取得します。
- listdir
- os.listdir自体。指定したディレクトリのエントリ名をリストとして返す関数です。
- path
- os.pathはパス操作用のサブモジュール。ファイルパスの結合・分解などを行います。
- path.join
- os.path.join。複数のパーツを正しい区切り文字で結合して、パスを作ります。
- basename
- os.path.basename。パスの末尾にあるファイル名だけを取り出します。
- dirname
- os.path.dirname。パスのディレクトリ部分を取り出します。
- isfile
- os.path.isfile。指定パスがファイルかどうかを判定します。
- isdir
- os.path.isdir。指定パスがディレクトリかどうかを判定します。
- scandir
- os.scandir。ディレクトリのエントリを scandir の結果で列挙する高速な方法です。
- DirEntry
- os.DirEntry。scandir が返すエントリの型で、メタ情報を含みます。
- walk
- os.walk。ディレクトリツリーを再帰的に巡回するジェネレータです。
- getcwd
- os.getcwd。現在の作業ディレクトリを取得します。
- chdir
- os.chdir。作業ディレクトリを変更します。
- pathlib
- ファイルパス操作を高水準に扱える別モジュール。os.listdirと比較されることが多いです。
- glob
- glob.glob。パターンに一致するファイル名を取得する便利な関数。os.listdirと併用されることがあります。
- 相対パス
- 現在のディレクトリを基準とするパス表現。os.listdirやpath操作時に扱うことが多いです。
- 絶対パス
- ファイルシステムの根からの完全なパス。正確なファイル位置を表します。
- FileNotFoundError
- 指定したディレクトリが存在しない場合に発生する例外です。
- NotADirectoryError
- ディレクトリとして扱おうとしたが、実際はファイルだった場合に発生する例外です。
- PermissionError
- アクセス権限が不足している場合に発生する例外です。
- OSError
- OS関連のエラーの総称。ファイル操作時の失敗でよく出ます。
- UnicodeDecodeError
- ファイル名を文字列として解釈する際のデコードエラーです。日本語名の扱い時に生じることがあります。
- UnicodeEncodeError
- 文字列をファイル名として保存する際のエンコードエラーです。
- encoding
- ファイル名の文字コード。特に日本語名を扱う場合は重要です。
os.listdirの関連用語
- os.listdir
- 指定したディレクトリ内のエントリ名を文字列の一覧として返す、Pythonの標準ライブラリであるosモジュールの関数。ファイル名とディレクトリ名の一覧を得るのに使う。
- os
- Pythonの標準ライブラリの1つで、OSと対話する機能を集めたモジュール。ファイル操作やプロセス管理などを提供する。
- pathlib
- Pathオブジェクトを使ってファイルパスを操作するモジュール。os.listdirの代替として使われることが多く、直感的なAPIを提供する。
- os.scandir
- ディレクトリを走査して DirEntry オブジェクトを返す関数。listdirより高速で、メタデータの取得にも向く。
- DirEntry
- os.scandir が返すエントリオブジェクト。名前・パス・is_dir/is_file などを高速に取得できる。
- os.path
- パス操作用のサブモジュール。結合・分割・拡張子取得などの便利な関数を提供する。
- glob
- ファイル名のパターンマッチを行うモジュール。ワイルドカードを使ってファイルを探す際に便利。
- os.getcwd
- 現在の作業ディレクトリ(カレントディレクトリ)のパスを取得する関数。
- os.chdir
- 作業ディレクトリを変更する関数。
- os.walk
- ディレクトリツリーを再帰的に辿るジェネレーター。各ディレクトリのパス、サブディレクトリ、ファイルを順に取得できる。
- NotADirectoryError
- 指定したパスをディレクトリとして扱えない場合に発生する例外。
- FileNotFoundError
- 指定したパスが存在しない場合に発生する例外。
- OSError
- OS操作の失敗を表す基本的な例外。多くのファイル操作で遭遇する可能性がある。
- PermissionError
- アクセス権限が不足してファイルやディレクトリを開けないときに発生する例外。
- EACCES
- errnoのエラーコードの一つ。権限がないことを示すベースとなる情報として現れることがある。
- getfilesystemencoding
- ファイル名のエンコード方式を取得する関数。環境ごとの文字コードの差を扱うときに役立つ。
- Unicodeファイル名
- ファイル名の文字コードに関する問題。OSとPython間のエンコード不一致に注意する。
- 隠しファイル
- Unix系で名前の先頭がドットのファイルを指すことが多い。listdirはこれらも通常は含む。
- ソート
- os.listdir はエントリの順序を保証しないので、必要に応じて sorted() で並べ替えるのが一般的。
- 相対パスと絶対パス
- ディレクトリ内エントリの一覧はエントリ名のみを返すことが多く、必要に応じて相対パスや絶対パスに変換する。
- os.path.join
- 複数のパスを正しく結合する関数。OSに合わせた区切り文字を自動で使用する。
- isfile / isdir / islink
- エントリがファイル・ディレクトリ・シンボリックリンクかを検査する方法。DirEntry/ os.path に対応する機能がある。
- Symlink
- シンボリックリンクのこと。リスト表示時には実体を指しているかどうかを確認する際に注意が必要。
- Cross-platform
- WindowsとPOSIX系でパスの区切り文字や権限、隠しファイルの扱いが異なる点に配慮する必要がある。
- 正規化とセキュリティ
- パスを正規化することでパスの誤解釈を減らし、セキュリティ上のリスクを軽減する。
- パフォーマンス比較
- listdir は全エントリを一度に読み込むのに対し、scandir は DirEntry を使って段階的に取得でき、特に大きなディレクトリで高速。
- エラーハンドリング
- OSError系の例外を try/except で適切に処理して、プログラムの崩壊を防ぐ。
- 拡張子でのフィルタリング
- 特定の拡張子だけを取り出したい場合、endswithや Path.suffix などを使って絞り込む。
- Pathlibとの比較
- Pathlibの Path オブジェクトと iterdir/glob との比較。可読性や機能の好みで使い分ける。
- 再帰的 listing の代替
- os.walk を使うとディレクトリツリー全体を再帰的に探索できる。



















