【Python 初級】ファイル検索の超入門!globモジュールで簡単ファイル操作

スポンサーリンク

Pythonでファイル操作を始めたいけれど、何から手を付ければ良いか分からない…そんなあなたに、glob モジュールを使った簡単なファイル検索方法をご紹介します。

glob モジュールを使えば、特定のパターンに合致するファイルやフォルダを簡単に見つけることができます。プログラミング初心者の方でもすぐに使える基本的な使い方を、分かりやすく解説します。

スポンサーリンク

この記事で学べること

  • glob モジュールの基本的な役割
  • glob.glob() 関数の使い方
  • *? などの基本的なワイルドカードの使い方
  • カレントディレクトリ内のファイル検索方法

globって何? ざっくり解説

glob モジュールは、Pythonでファイルやフォルダの名前を、簡単なルール(パターン)を使って探すための道具です。

例:

  • 「拡張子が .txt のファイルだけ見つけたい!」
  • 「ファイル名の先頭が report_ のファイルを見つけたい!」

このような場合に便利です。

基本の呪文:glob.glob() 関数

glob モジュールの中心となるのは、glob.glob() という関数です。この関数に探したいファイル名のパターンを文字列で教えてあげると、条件に合ったファイルやフォルダの名前をリスト形式で返してくれます。

まずはインポート!

Python

import glob

基本的な使い方

現在のフォルダにあるすべてのファイルとフォルダの名前を知りたい場合は、パターンとして * を指定します。* は「何でも良いという意味のワイルドカードです。

Python

import glob

files = glob.glob('*')
print(files)

コード解説:

  • files = glob.glob('*'): glob.glob() 関数に '*' というパターンを渡しています。* はすべてのファイルやフォルダにマッチするため、現在のフォルダにあるすべての項目名がリストとして files 変数に格納されます。
  • print(files): files 変数に格納されたリストの内容(現在のフォルダのファイルとフォルダの名前)を画面に出力します。

特定の拡張子のファイルを探す

拡張子が .txt のファイルだけを探したい場合は、パターンを '*.txt' とします。

Python

import glob

txt_files = glob.glob('*.txt')
print(txt_files)

コード解説:

  • txt_files = glob.glob('*.txt'): glob.glob() 関数に '*.txt' というパターンを渡しています。* は任意の文字列にマッチし、.txt は拡張子が .txt であることを示します。したがって、現在のフォルダにある拡張子が .txt のすべてのファイル名がリストとして txt_files 変数に格納されます。
  • print(txt_files): txt_files 変数に格納されたリストの内容(拡張子が .txt のファイル名)を画面に出力します。

ファイル名の一部が一致するものを探す

ファイル名が data で始まる .csv ファイルを探したい場合は、パターンを 'data*.csv' とします。

Python

import glob

csv_files = glob.glob('data*.csv')
print(csv_files)

コード解説:

  • csv_files = glob.glob('data*.csv'): glob.glob() 関数に 'data*.csv' というパターンを渡しています。data で始まり、その後に任意の文字列が続き、.csv で終わるファイル名がリストとして csv_files 変数に格納されます。
  • print(csv_files): csv_files 変数に格納されたリストの内容(data で始まる .csv ファイル名)を画面に出力します。

覚えておきたいワイルドカード

glob モジュールでよく使うワイルドカードは以下の2つです。

  • *: 0個以上の任意の文字にマッチします。(例:*.txtdata*
  • ?: 任意の1文字にマッチします。(例:file?.log

例:file の後に何か1文字が来て、.txt で終わるファイルを探す

Python

import glob

specific_files = glob.glob('file?.txt')
print(specific_files)

コード解説:

  • specific_files = glob.glob('file?.txt'): glob.glob() 関数に 'file?.txt' というパターンを渡しています。file で始まり、その後に任意の1文字が続き、.txt で終わるファイル名がリストとして specific_files 変数に格納されます。例えば、file1.txtfilea.txt はマッチしますが、file12.txt はマッチしません。
  • print(specific_files): specific_files 変数に格納されたリストの内容を出力します。

まとめ:globでファイル検索を始めよう!

この初級編では、glob モジュールの基本的な使い方と、*? という2つのワイルドカードを使ったファイル検索の方法を学びました。glob を使えば、簡単なパターンでファイルやフォルダを効率的に見つけることができます。

次の記事(中級編)では、さらに高度なワイルドカードの使い方や、サブフォルダの検索方法について解説します。

スポンサーリンク

コメント

タイトルとURLをコピーしました