10.7. glob --- Unix 形式のパス名のパターン展開¶
ソースコード: Lib/glob.py
glob モジュールは Unix シェルで使われているルールに従い指定されたパターンに一致するすべてのパス名を見つけ出します。返される結果の順序は不定です。チルダは展開されませんが、*, ?, および [] で表現される文字範囲については正しくマッチされます。これは、関数 os.listdir() および fnmatch.fnmatch() を使用して行われており、実際にサブシェルを呼び出しているわけではありません。fnmatch.fnmatch() と異なり、glob はドット (.) で始まるファイル名は特別扱いする点に注意してください。(チルダおよびシェル変数の展開を利用したい場合は os.path.expanduser() および os.path.expandvars() を使用してください。)
文字通りにマッチさせる場合はメタ文字を括弧に入れてください。例えば、'[?]' は文字 '?' にマッチします。
- 
glob.glob(pathname)¶ pathname (パスの指定を含んだ文字列でなければいけません。)にマッチする空の可能性のあるパス名のリストを返します。 pathname は(
/usr/src/Python-1.5/Makefileのように)絶対パスでもいいし、(../../Tools/*/*.gifのように)相対パスでもよくて、シェル形式のワイルドカードを含んでいてもかまいません。結果には(シェルと同じく)壊れたシンボリックリンクも含まれます。
たとえば、次の三つのファイルだけがあるディレクトリを考えてください: 1.gif 、 2.txt 、 card.gif 。 glob() は次のような結果になります。パスに接頭するどの部分が保たれているかに注意してください。
>>> import glob
>>> glob.glob('./[0-9].*')
['./1.gif', './2.txt']
>>> glob.glob('*.gif')
['1.gif', 'card.gif']
>>> glob.glob('?.gif')
['1.gif']
ディレクトリが . で始まるファイルを含んでいる場合、デフォルトでそれらはマッチしません。例えば、 card.gif と .card.gif を含むディレクトリを考えてください:
>>> import glob
>>> glob.glob('*.gif')
['card.gif']
>>> glob.glob('.c*')
['.card.gif']
参考
fnmatchモジュールシェル形式の(パスではない)ファイル名展開
