Pythonのglobモジュールを利用して指定パス内のjsonファイル一覧を取得する方法を現役エンジニアが解説【初心者向け】
初心者向けにPythonのglobモジュールを利用して指定パス内のjsonファイル一覧を取得する方法について現役エンジニアが解説しています。globモジュールとは 、特殊な文字を用いてファイルを検索するためのライブラリです。特定の拡張子のファイルを検索したい場合などに利用できます。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
Pythonのglobモジュールを利用して指定パス内のjsonファイル一覧を取得する方法について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して、初心者向けに解説します。
Pythonについてそもそもよく分からないという方は、Pythonとは何なのか解説した記事を読むとさらに理解が深まります。
なお本記事は、TechAcademyのオンラインブートキャンプ、Python講座の内容をもとに紹介しています。
今回は、Pythonに関する内容だね!
どういう内容でしょうか?
Pythonのglobモジュールを利用して指定パス内のjsonファイル一覧を取得する方法について詳しく説明していくね!
お願いします!
Pythonを使っていると、「ある特定の拡張子のファイルだけ取り出したい」ということってたまにありますよね。そんな時に便利なのがglobモジュールです。この記事ではglobモジュールの使い方について解説します。
globモジュールとは
globモジュールとは 、*(アスタリスク)や?などの特殊な文字を用いたパターンにマッチするようなファイルを取得するためのモジュールです。このような記号のことをワイルドカードと言います。
*(アスタリスク)は0文字以上の文字列を表し、?は任意の1文字を表します。例えば*(アスタリスク)を用いる場合を考えます。あるフォルダの中からPythonファイルだけを取得したいとき、パターンには*.pyと指定します。
このようにして、sample.pyやtest.pyなどのファイルパスの一覧を簡単に取得できるのです。
globモジュールの使い方
globモジュールを使うにはまずインポートをする必要があります。インポートは以下のコードで簡単にできます。
import glob
globモジュールをインポートしたら、モジュールの中のglob()という関数を用いてファイルパスを取得していきます。モジュール名と関数名が同じであるという点に少し注意が必要です。glob()関数の引数には、探索したいファイルまでのパスをパターンとして渡します。
実際に書いてみよう
まだあまりイメージが湧かないと思いますので、globモジュールを使って実際にファイルパスを取得してみましょう。今回はjsonというファイルの一覧を取得してみます。jsonファイルとは、以下のように:で区切られた形式になっているファイルです。
fruits.json
apple:120 orange:100 banana:80 peach:300 grape:800
ここでは、果物の名前と、1個あたりの果物の値段をfruits.jsonというファイルにまとめています。ちなみに、jsonとはJavaScript Object Notationの略です。
jsonファイルのイメージが固まったところで、jsonのファイルパスの一覧を取得していきましょう。glob()関数の引数に相対パスを記載します。以下のようにコードを書いてください。
【コード】
import glob json_files = glob.glob("./folder1/*.json") for file in json_files: print(file)
【実行結果】
./folder1/fruits.json ./folder1/cars.json ./folder1/books.json
.の記号はカレントディレクトリを表します。このようにして、folder1の中にあるjsonファイルのパスを全て取得することができました。
引数に相対パスを渡せば戻り値も相対パスになりますし、絶対パスを渡せば戻り値も絶対パスになります。どちらでも書けると言った点も地味ですが便利な機能ですね。
まとめ
この記事ではglobモジュールの使い方についてご説明しました。
globモジュールを使うと簡単に任意のパターンのファイル名を取得できて非常に便利です。アスタリスク以外の記号でも是非使いこなせるようになりましょう。
監修してくれたメンター
柴山真沙希(しばやままさき)
大手IT企業などでエンジニアとして2年ほど勤務した後、個人事業主としてプログラミングスクール「エンペサール」を経営。子供から大人まで幅広い層を対象にプログラミングを教えている。 得意言語はPython, HTML, CSSで、機械学習やデータ分析、スクレイピングなどが得意。サッカー観戦や読書が趣味である。 |
内容分かりやすくて良かったです!
ゆかりちゃんも分からないことがあったら質問してね!
分かりました。ありがとうございます!
TechAcademyでは、初心者でも、Pythonを使った人工知能(AI)や機械学習の基礎を習得できる、オンラインブートキャンプを開催しています。
また、現役エンジニアから学べる無料体験も実施しているので、ぜひ参加してみてください。