Pythonで任意のフォルダ下にあるファイルの一覧を取得する方法はさまざま。
最も簡単なものの1つが、os モジュールを使う方法でしょう。
import os
dir_path = "D:/liquidJumper"
file_list = os.listdir(dir_path)
for i in file_list:
print(i)
osモジュールを使った上記コードを実行すると、指定したディレクトリ下の全ファイル・ディレクトリを取得できました。
csv_0005_sd.csv
csv_0023_n.csv
csv_0154_a.csv
csv_1287_b.csv
csv_test.csv
csv_test2.csv
csv_test_e.csv
csv_test_j.csv
csv_test_new.csv
json_file.json
json_file_new.json
newdir
new_textfile.txt
textfile_shift_jis.txt
textfile_utf8.txt
todofuken.xls
todofuken.xlsx
wakayama.xls
手順としてはとてもシンプルで、ファイルの一覧を取得する事が目的なら、これで事足りる事が殆どですが、場合よってはファイルの拡張子を限定したい事もあると思います。
上記のosモジュールで全ファイルの一覧を取得後に、拡張子を選別する事もできますが、globモジュールを使うと一覧を取得する段階でファイルの種類を限定する事ができます。
本記事では、Python3のglobモジュールを使った、ファイルの一覧を取得する方法を紹介します
拡張子やファイル名を絞ってファイルの一覧を取得したい場合に、とても便利な方法なので是非参考にしてみてください。
|
Python 3-globモジュールで拡張子やファイル名のパータンを絞ってファイル一覧を取得する
Pythonで拡張子を指定してファイルの一覧を取得する場合は
globモジュール
を使います。
globモジュールはファイル名やディレクトリ名の一覧を取得する際に、ワイルドカードや正規表現によるパターンマッチングが可能です。
ワイルドカードによるパターンマッチング
テキストファイルの拡張子 [.txt] だけのファイルを取得する場合は、
ファイル一覧を取得するパスの末尾にワイルドカード「*」と拡張子を指定します。
import glob
search_path = 'D:/liquidjumper/*.txt'
file_list = glob.glob(search_path)
for i in file_list:
print(i)
上記コードを実行すると、拡張子が [.txt] だけのファイルパス一覧を取得できました。
D:/liquidJumper2\new_textfile.txt
D:/liquidJumper2\textfile_shift_jis.txt
D:/liquidJumper2\textfile_utf8.txt
特殊文字を使ってファイル名のパターンを指定
拡張子では無く、先頭が数字、末尾に連番など、ファイル名のパータンを指定してファイルの一覧を取得したい場合がるでしょう。
globモジュールで正規表現で使用する特殊文字を使ったパスを指定すれば、ファイル名のパータンを指定する事が可能です。
ディレクトリパスの後ろにファイル名が
「 csv_[4桁の数字]_[1文字].拡張子」
のパータンを特殊文字で指定して、ファイルの一覧を取得してみましょう。
import glob
search_path = 'D:/liquidJumper/csv_[0-9][0-9][0-9][0-9]_[a-z].*' #「 csv_[4桁の数字]_[1文字].拡張子」を特殊文字で検索
file_list = glob.glob(search_path)
for i in file_list:
print(i)
ファイル名が「 csv_[4桁の数字]_[1文字].拡張子」のパータンにヒットするファイルだけを取得できました。
D:/liquidJumper2\csv_0023_n.csv
D:/liquidJumper2\csv_0154_a.csv
D:/liquidJumper2\csv_1287_b.csv
|
まとめ:拡張子やフィル名を絞ってファイルの一覧を取得したい場合に便利
Pythonのglobモジュールを使った、ファイルの一覧を取得する方法を紹介しました。
globモジュールを使うと一覧を取得する段階で拡張子・ファイル名・ディレクトリ名を限定する事ができます。
効率的にファイルの一覧を取得したい場合に、とても便利なので是非使ってみてください。
|
自宅からでもWeb制作・プログラミング・アプリ開発などが習得できるさまざまなコースをラインナップ。
非エンジニアでスキルを磨きたい方から、フリーランス、就職/転職を目指す方まで、専属のメンターがサポート。
最近は副業ブームもあり「 はじめての副業コース 」が人気です。
|
|
BTOパソコンの草分け的ブランドFRONTIER(フロンティア) 3DCG/動画編集/ゲーム用途に合わせてCPUやGPUなどパーツを自由に選べてコスパにもこだわる方にオススメ。 |
|
|
|
|
|