Python3入門 フォルダ内のファイル一覧を取得する方法

ここでは、Python 3 で特定のフォルダ内のファイルを取得する方法について解説します。

glob.glob() による取得

 フォルダ内のファイルの一覧を取得するのに簡単なのは、globモジュールを利用することです。 次の例のように、glob モジュールの glob メソッドで簡単にファイル名の配列を取得することができます。 次の例では ./tmp ディレクトリ内のファイルの一覧を取得しています。 「*」は、「全て」を表します。

import glob

files = glob.glob("./tmp/*")
for file in files:
    print(file)
./tmp/aaa.txt
./tmp/bbb.txt
./tmp/ccc.txt
./tmp/ddd.html
./tmp/eee.html

 上の例では相対パスでフォルダを指定しましたが、もちろん絶対パスでもフォルダを指定することができます。

import glob

files = glob.glob("/tmp/tmp/*")
for file in files:
    print(file)
/tmp/tmp/aaa.txt
/tmp/tmp/bbb.txt
/tmp/tmp/ccc.txt
/tmp/tmp/ddd.html
/tmp/tmp/eee.html

特定の拡張子のファイルのみを取得する

 さて、フォルダ内にある特定の拡張子のファイルのみを取得したい場合があります。 その場合は、「*.html」のように指定します。

import glob

files = glob.glob("/tmp/tmp/*.html")
for file in files:
    print(file)
/tmp/tmp/ddd.html
/tmp/tmp/eee.html

サブディレクトリ内のファイル一覧を取得する

 いくつもサブディレクトリがあり、そのサブディレクトリ内の全てのファイルを取得したい場合は、「/tmp/**/*」のように指定します。

import glob

files = glob.glob("/tmp/**/*")
for file in files:
    print(file)
/tmp/tmp/aaa.txt
/tmp/tmp/bbb.txt
/tmp/tmp/ccc.txt
/tmp/tmp/ddd.html
/tmp/tmp/eee.html
/tmp/tmp2/yyy.txt
/tmp/tmp2/zzz.txt

著者 : OSCA

OSCA

 初級WEBエンジニアです。最近は Android, iOS, WEBアプリの作成に力を入れています。 個人として何か一つでも世の中の多くの人に使ってもらえるアプリを作ろうと日々奮闘中です。