Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでディレクトリ内のすべてのファイルを一覧表示する方法


Pythonでディレクトリの中身を確認したいときは、標準ライブラリの os モジュールが便利です。os.listdir(my_path) を使うと、指定したパス(my_path)にあるすべての要素——ファイルとディレクトリの両方——をリストとして取得できます。

基本的な使い方

os.listdir() は以下のように使用します。

>>> import os
>>> os.listdir('.')
['DLLs', 'Doc', 'etc', 'include', 'Lib', 'libs', 'LICENSE.txt', 'NEWS.txt', 'python.exe', 'pythonw.exe', 'README.txt', 'Scripts', 'share', 'tcl', 'Tools', 'w9xpopen.exe']

実行結果

このコードを実行すると、カレントディレクトリ('.')内のすべてのファイル名とフォルダ名が文字列のリストとして返されます。引数を省略した場合もカレントディレクトリが対象になります。

ファイルだけを一覧表示する方法

ディレクトリを除外して、ファイルのみを取得したい場合は os.path.isfile() を使ってフィルタリングします。リスト内包表記と組み合わせると、次のように簡潔に書けます。

>>> import os
>>> file_list = [f for f in os.listdir('.') if os.path.isfile(os.path.join('.', f))]
>>> print(file_list)
['LICENSE.txt', 'NEWS.txt', 'python.exe', 'pythonw.exe', 'README.txt', 'w9xpopen.exe']

os.path.join() を使うことで、Windows・macOS・LinuxなどOSごとに異なるパス区切り文字に対応した正しいパスが生成され、確実に判定できます。

補足:pathlibを使ったモダンな書き方

Python 3.4以降では、pathlib モジュールを使うとより直感的に記述できます。

>>> from pathlib import Path
>>> file_list = [f.name for f in Path('.').iterdir() if f.is_file()]

用途に応じて ospathlib を使い分けることで、読みやすく保守性の高いコードになります。

  1. 【Python入門】リストをコピーする4つの方法を徹底解説

    Pythonでリストをコピーするには、copy()メソッド、スライス構文、list()関数、リスト内包表記の4つの方法があります。その中でもcopy()メソッドが最も直接的でシンプルな方法です。 Pythonでリストを扱っていると、既存のリストのコピーを作成したい場面に遭遇することがあります。たとえば、昨年度の生徒名簿をもとに新学期用の名簿を作成するプログラムを作る場合、元の名簿は残しておきたいはずです。 Pythonでリストをコピーする4つの方法 Pythonでリストをコピーするには、主に以下の4つの方法があります。 スライス構文を使うcopy()メソッドを使うlist()関数を使う

  2. Pythonでフォルダ内のすべてのExcelファイルを一括マージする方法

    Pythonを使えば、フォルダ内に散らばった複数のExcelファイルをわずか数行のコードで1つのファイルにまとめることができます。本記事では、標準ライブラリのglobモジュールと、データ分析に欠かせないpandasを組み合わせて、Excelファイルを一括結合する手順を詳しく解説します。 前提条件:必要なパッケージのインストール まず、Excelファイルを読み書きするために以下のパッケージが必要です。まだインストールしていない場合は、pipコマンドで導入しておきましょう。 pip install openpyxl xlrd openpyxl:xlsx形式(Excel 2007以降)の読み書きに