# 7 `glob` -- Unix 形式のパス名のパターン展開

`glob` モジュールはUnix シェルで使われているルールに従って指定され たパターンにマッチするすべてのパス名を見つけ出します。 チルダ展開は使えませ んが、`*`、 `?`と `[]`で表される文字範囲には正しくマッチしま す。これは`os.listdir()` 関数と `fnmatch.fnmatch()`関数を 一緒に使って実行されていて、 実際に subshell を呼び出しているわけではありま せん。(チルダ展開とシェル変数展開を利用したければ、 `os.path.expantion()` と`os.path.expandvars()`を 使ってください。)

`glob`( | pathname)

  pathname (パスの指定を含んだ文字列でなければいけません。)にマッチする 空の可能性のあるパス名のリストを返します。

  pathname は( /usr/src/Python-1.5/Makefileのように)絶対パスでも いいし、(../../Tools/*/*.gifのように)相対パスでもよくて、シェル形式の ワイルドカードを含んでいてもかまいません。 結果には(シェルと同じく)壊れたシンボリックリンクも含まれます。

`iglob`( | pathname)

  全ての値を一度に格納することなく`glob()`と同じ値を生成するすイ テレータを返します。 バージョン 2.5 で 新たに追加 された仕様です。

`iglob`( | pathname)

  実際には一度に全てを格納せずに、`glob()`と同じ値を順に生成するイテレータを返します。 バージョン 2.5 で 新たに追加 された仕様です。

たとえば、次のファイルだけがあるディレクトリを考えてください: 1.gif、 2.txt、 and 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']

参考:

`fnmatch`:モジュール
  シェル形式の(パスではない)ファイル名展開.