Pythonのglobライブラリはファイル名のマッチングを実現します。
前言
Pathlibライブラリでglob関数に言及した以上、私たちはもっぱら一つの内容でファイル名のマッチングを説明します。実は私達は専門的なファイル名のマッチングライブラリを持っています。
しかし、globライブラリのAPIは非常に小さいですが、ファイル名のマッチングだけには十分余裕があります。実際のプロジェクトでフィルタリングが必要であれば、またはファイルのセットに合わせてライブラリを使って操作することができます。
ワイルドカード
アスタリスク(*)
多くは話しません。以下はワイルドカードを使ってファイル名に合わせます。例は以下の通りです。
ここでは*ワイルドカードでディレクトリのすべてのファイルを取得しただけでなく、並べ替えも行いました。
疑問符(?)
疑問符(?)は単語にマッチするものです。たとえば、上の1番目の画像ファイルを選択します。例は以下の通りです
区間マッチング([0-9][a-z][A-Z])
上の二つのマッチから見て、globライブラリの整合規則は正規表現と似ています。あいまいな、1つ以上の文字にマッチするなら、区間の文字にもマッチするはずです。
例は以下の通りです
変換元文字
もちろん、上のファイル名はいつものファイル名です。全部アルファベットと数字で構成されています。ただし、ファイル名には上のマッチング文字などの特殊な文字が含まれている可能性があります。など。どうすればいいですか?アンバーを使って\"を転じますか?
実は、もっと簡単なのがあります。直接にescape関数を使って操作します。例は以下の通りです
ここでPythonのglobライブラリのファイル名のマッチングを実現するための記事を紹介します。Pythonファイル名のマッチング内容については、以前の記事を検索したり、下記の関連記事を見たりしてください。これからもよろしくお願いします。
Pathlibライブラリでglob関数に言及した以上、私たちはもっぱら一つの内容でファイル名のマッチングを説明します。実は私達は専門的なファイル名のマッチングライブラリを持っています。
しかし、globライブラリのAPIは非常に小さいですが、ファイル名のマッチングだけには十分余裕があります。実際のプロジェクトでフィルタリングが必要であれば、またはファイルのセットに合わせてライブラリを使って操作することができます。
ワイルドカード
アスタリスク(*)
多くは話しません。以下はワイルドカードを使ってファイル名に合わせます。例は以下の通りです。
import glob
for name in sorted(glob.glob('text/*')):
print(name)
運転後の効果は以下の通りです。ここでは*ワイルドカードでディレクトリのすべてのファイルを取得しただけでなく、並べ替えも行いました。
疑問符(?)
疑問符(?)は単語にマッチするものです。たとえば、上の1番目の画像ファイルを選択します。例は以下の通りです
import glob
for name in glob.glob('text/1?.png'):
print(name)
運転後の効果は以下の通りです。区間マッチング([0-9][a-z][A-Z])
上の二つのマッチから見て、globライブラリの整合規則は正規表現と似ています。あいまいな、1つ以上の文字にマッチするなら、区間の文字にもマッチするはずです。
例は以下の通りです
import glob
for name in glob.glob('text/15[a-z].*'):
print(name)
運転後の効果は以下の通りです。変換元文字
もちろん、上のファイル名はいつものファイル名です。全部アルファベットと数字で構成されています。ただし、ファイル名には上のマッチング文字などの特殊な文字が含まれている可能性があります。など。どうすればいいですか?アンバーを使って\"を転じますか?
実は、もっと簡単なのがあります。直接にescape関数を使って操作します。例は以下の通りです
import glob
escape_str='?*[]'
for char in escape_str:
pattern = 'text/*' + glob.escape(char) + '.png'
for name in glob.glob(pattern):
print(name)
運転後の効果は以下の通りです。ここでPythonのglobライブラリのファイル名のマッチングを実現するための記事を紹介します。Pythonファイル名のマッチング内容については、以前の記事を検索したり、下記の関連記事を見たりしてください。これからもよろしくお願いします。