Source code: Lib/glob.py
The glob
module finds the all the pathnames matching a specified patternaccording the rules by the Unix shell, although results are returned inarbitrary order. チルダの展開は行われませんが、*
, ?
, で表される文字列は正しくマッチングされます。 これは、
os.scandir()
と fnmatch.fnmatch()
関数を組み合わせて使用するためであり、実際にサブシェルを呼び出すわけではありません。 fnmatch.fnmatch()
とは異なり、glob
はドット (.
) で始まるファイル名を特殊なケースとして扱うことに注意。 (チルダとシェル変数の展開には、os.path.expanduser()
と os.path.expandvars()
を使用する。))
リテラルマッチの場合、メタキャラクタを括弧で囲む。例えば、''
は '?'
にマッチする。
See also
The pathlib
module offers high-level path objects.
glob.
glob
(pathname, *, recursive=False)¶
pathname にマッチする空リスト (パス指定を含む文字列である必要がある) を返す。pathname には絶対 (/usr/src/Python-1.5/Makefile
など) または相対 (../../Tools/*/*.gif
など) があり、シェルスタイルのワイルドカードも含むことができる。 Brokensymlinkは(シェルと同様に)結果に含まれます。 結果がソートされているかどうかは、ファイルシステムに依存します。
recursive が真の場合、パターン “**
” は任意のファイルおよび 0 個以上のディレクトリ、サブディレクトリ、ディレクトリへのシンボリックリンクにマッチします。
引数 pathname
, recursive
で監査イベント glob.glob
を発生させます。
注意
大きなディレクトリツリーに “**
” パターンを使用すると、膨大な時間を消費することがあります。
バージョン 3.5 で変更: “**
” を使った再帰的グロブのサポート。
glob.
iglob
(pathname, *, recursive=False)¶
glob()
と同じ値を実際にすべて同時に格納せずに返す反復子を返すようになりました。
Raises a auditing event glob.glob
with arguments pathname
, recursive
.
glob.
escape
(pathname)¶
Escape all special characters ('?'
, '*'
and '.txt'
.を含む)・(pathname)・(pathname)・(pathname)・(pathname)を含む。
New in version 3.4.
例えば、次のファイルを含むディレクトリ:1.gif
, 2.txt
, card.gif
とファイル 3.txt
のみを含むサブディレクトリ sub
があるとします。 glob()
を実行すると、次のような結果が得られます。
>>> import glob>>> glob.glob('./.*')>>> glob.glob('*.gif')>>> glob.glob('?.gif')>>> glob.glob('**/*.txt', recursive=True)>>> glob.glob('./**/', recursive=True)
ディレクトリに .
で始まるファイルがある場合、それらはデフォルトではマッチングされません。 例えば、card.gif
と .card.gif
:
>>> import glob>>> glob.glob('*.gif')>>> glob.glob('.c*')
See also
Module fnmatch
Shell-style filename (not path) expansion
を含むディレクトリがあるとします。