glob モジュールはUnix シェルで使われているルールに従って指定され
たパターンにマッチするすべてのパス名を見つけ出します。 チルダ展開は使えませ
んが、*
、 ?
と []
で表される文字範囲には正しくマッチしま
す。これはos.listdir() 関数と fnmatch.fnmatch()関数を
一緒に使って実行されていて、 実際に subshell を呼び出しているわけではありま
せん。(チルダ展開とシェル変数展開を利用したければ、
os.path.expantion() とos.path.expandvars()を
使ってください。)
pathname) |
pathname は( /usr/src/Python-1.5/Makefileのように)絶対パスでも いいし、(../../Tools/*/*.gifのように)相対パスでもよくて、シェル形式の ワイルドカードを含んでいてもかまいません。 結果には(シェルと同じく)壊れたシンボリックリンクも含まれます。
pathname) |
pathname) |
たとえば、次のファイルだけがあるディレクトリを考えてください: 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']
参考: