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" のように)相対パスでもよくて、シェル形式のワ
   イルドカードを含んでいてもかまいません。結果には(シェルと同じく)壊
   れたシンボリックリンクも含まれます。

glob.iglob(pathname)

   実際には一度に全てを格納せずに、 "glob()" と同じ値を順に生成する *
   イテレータ* を返します。

   バージョン 2.5 で追加.

たとえば、次の三つのファイルだけがあるディレクトリを考えてください:
"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" モジュール
     シェル形式の(パスではない)ファイル名展開
