python 存在するフォルダやファイルの一覧を取得する

python 存在するフォルダやファイルの一覧を取得する

pythonで、os.listdir関数を使って、存在するフォルダやファイルの一覧を取得するサンプルコードを記述してます。pythonのバージョンは3.8.5を使用してます。

環境

  • OS windows10 pro 64bit
  • python 3.8.5

フォルダやファイルの一覧を取得

os.listdir関数を使用すれば、フォルダやファイルの一覧を取得することが可能です。

import os

# カレントディレクトリある一覧を取得
print(os.listdir("./"))

# ['foo', 'foo.txt', 'sample.py']

フォルダ構成

条件を指定してフォルダやファイルの一覧を取得

条件を指定して取得したい場合は「glob」を使用します。

fooフォルダ配下の全ての拡張子が「.txt」のものを取得するには、「ワイルドカード*」を利用します。

import glob

for name in glob.glob('./foo/*.txt'):

  print(name)

# ./foo\bar.txt
# ./foo\foo.txt
# ./foo\test.txt

fooファルダ構成

「t」から始まるフォルダやファイルのみを取得するには「t*」とします。

import glob

for name in glob.glob('./foo/t*'):

  print(name)

# ./foo\test.docx
# ./foo\test.txt

ファイル名が3文字のもので拡張子が「.txt」のもののみを取得する場合は、
「???.txt」とします。

import glob

for name in glob.glob('./foo/???.txt'):

  print(name)

# ./foo\bar.txt
# ./foo\foo.txt

全てのフォルダやファイル一覧を、再帰的に取得する場合は、「recursive=True」を使用して、パスに「 ** 」を付けます。

import glob

print( glob.glob("./foo/**", recursive=True) )

# ['./foo\\', './foo\\bar', './foo\\bar\\hoge', './foo\\bar\\hoge\\hoge.txt', './foo\\bar.txt', './foo\\foo.txt', './foo\\test.docx', './foo\\test.txt']

fooファルダ構成