カレントディレクトリのみ
import os
import glob
def find_all_files_with_ext(ext):
pattarn = '*' + os.extsep + ext
return glob.glob(pattarn)
サブディレクトリも含む
import os
def _find_all_files_with_ext(dir, ext):
suffix = os.extsep + ext.lower()
for root, dirs, files in os.walk(dir):
for file in files:
if file.lower().endswith(suffix):
yield os.path.join(root, file)
def find_all_files_with_ext(dir, ext):
return list(_find_all_files_with_ext(dir, ext))
※ 上のメソッドを先に書いたのでメソッドを分けた状態で載せてますが、リストで取得するだけなら、メソッドを分ける必要は特にないです。
※ インデックス指定比較と比べて、可読性が良く同程度のパフォーマンスであったので、endswith メソッドに修正。