liquidjumper Python Python 3で拡張子やファイル名のパータンを絞ってファイル一覧を取得する方法

Python 3で拡張子やファイル名のパータンを絞ってファイル一覧を取得する方法

python_glob_filename-extension_and_partan_search_topimage

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モジュールを使うと一覧を取得する段階で拡張子・ファイル名・ディレクトリ名を限定する事ができます。

効率的にファイルの一覧を取得したい場合に、とても便利なので是非使ってみてください。



ネットショッピングをする感覚で講座を購入し、動画を視聴して学習するシステムのUdemy

そのUdemyで評価が高いPythonの人気講座といえば、現役シリコンバレーエンジニア「酒井潤」講師の講座。
Pythonの書き方だけでなくシリコンバレー仕込みの Pythonic(パイソニック)と称されるPythonらしいコードの記述方法や実務での所作まで学べます。



「現役シリコンバレーエンジニアが教えるPython3入門+応用+アメリカのシリコンバレー流コードスタイル」
現役シリコンバレーエンジニアが教えるPython入門!応用では、データ解析、データーベース、ネットワーク、暗号化、並列化、テスト、インフラ自動化、キューイングシステム、非同期処理など盛り沢山の内容です!







Twitter Facebook Pocket LINE はてブ

おすすめの関連記事
コチラの記事も読まれています
あわせてよく読まれている記事