Pythonでは、ワイルドカードを活用してファイルリストを取得することができます。ワイルドカードとは、文字列の指定や探索の際に、全ての文字、任意の1文字、文字列の範囲を指定する記号や記述方の事を指します。ワイルドカードには*
や?
や-
があります。
ワイルドカードとは
ワイルドカードとは、文字列の指定や探索の際に、任意の1文字か任意の長さを指定することで、文字列の集合体を表現します。正規表現と似ていますが、ワイルドカードでは、任意の文字列や任意の数値のような範囲をざっくりと表現します。ワイルドカードには、「*」や「?」や「-」が存在します。
ワイルドカードの使い方
代表的なワイルドカードの役割と使い方について紹介します。
*
(アスタリスク): 任意の文字列を指定できます。例えば、*
のみで条件指定をした場合はすべての文字列が対象です。abc*
と条件指定した場合は、abcから始まる文字列が対象になります。また、*abc*
と条件指定することで、abcが含まれる文字列が対象になります。?
: 任意の1文字を指定できます。例えば、?
のみを条件で指定した場合は、1文字のみで構成される文字列が対象になります。abc???
と条件指定した場合は、abcdef
やabc123
のように、abc
と3文字の文字列で構成される文字列が対象になります。[-]
:[-]
の範囲内に含まれる文字列を指定できます。例えば[0-9]
と条件を指定して使用すると、0から9までの任意の数字1文字が対象になります。[a-zA-Z]
と条件を指定すると、任意の半角英字1文字が対象になります。
Pythonでワイルドカードを活用する方法
Pythonでは、globモジュールを使用することで、ワイルドカードを活用してファイルリストを取得できます。次のような文法で、globモジュールを使ってファイルリストを取得できます。
import glob
glob.glob('ファイルパス')
また、’ファイルパス’をワイルドカードを使用したファイル名にすることで、現在のフォルダ内に存在する、条件にマッチしたファイル名をリスト型で取得できます。
実際に使ってみよう
それでは、Pythonでワイルドカードを活用してファイルリストを取得する方法について、サンプルコードを参考に実際のファイルリストを取得してみましょう。
import glob
print('全てのファイルを取得')
print(glob.glob('*'))
print('\"e\"+任意の文字列から始まるファイル名を取得')
print(glob.glob('e*'))
print('\"M\"+任意の7文字から始まるファイル名を取得')
print(glob.glob('r???????'))
print('\"m\"+任意の半角英字3文字から始まるファイル名を取得')
print(glob.glob('m[a-zA-Z][a-zA-Z][a-zA-Z].tar.gz'))
以上がPythonでワイルドカードを活用する方法についての説明です。この知識を活用して、Pythonでのファイル操作をより効率的に行ってみてください。