# `glob` — Unix tarzı yol adı kalıp açılımı

Kaynak kod Lib/glob.py

The `glob` module finds pathnames using pattern matching rules similar to the Unix shell. No tilde expansion is done, but `*`, `?`, and character ranges expressed with `[]` will be correctly matched. This is done by using the `os.scandir()` and `fnmatch.fnmatch()` functions in concert, and not by actually invoking a subshell.

Not

The pathnames are returned in no particular order. If you need a specific order, sort the results.

Files beginning with a dot (`.`) can only be matched by patterns that also start with a dot, unlike `fnmatch.fnmatch()` or `pathlib.Path.glob()`. For tilde and shell variable expansion, use `os.path.expanduser()` and `os.path.expandvars()`.

Harfi harfine eşleşme için meta-karakter’leri köşeli parantez içine koyun. Örneğin, `'[?]'` deseni `'?'` karakteri ile eşleşir.

The `glob` module defines the following functions:

glob.glob(pathname, *, root_dir=None, dir_fd=None, recursive=False, include_hidden=False)

  pathname ile eşleşen bir liste döndürür ve bu boş liste de olabilir. pathname, dizin yolu belirtimi içeren bir string olmalıdır. pathname hem mutlak (örneğin `/usr/src/Python-1.5/Makefile`) hem de göreceli (örneğin `../../Tools/*/*.gif`) olabilir ve kabuk-tarzı joker karakterler de içerebilir. Bozuk sembolik bağlantılar de sonuçlara dahil edilir (kabukta olduğu gibi). Sonucun sıralanmış olup olmaması dosya sistemine bağlıdır. Eğer eşleşmeye uyan bir dosya bu fonksiyonun çağrılması sırasında kaldırılırsa veya eklenirse dönüş değerinde dosyanın bulunup bulunmayacağı belirsizdir.

  If root_dir is not `None`, it should be a path-like object specifying the root directory for searching. It has the same effect on `glob()` as changing the current directory before calling it. If pathname is relative, the result will contain paths relative to root_dir.

  Bu fonksiyon dir_fd parametresi ile dizin tanımlayıcılarına göre dosya yolları destekler .

  Eğer recursive True ise “`**`” deseni tüm dosyaları ve sıfır veya daha fazla dizin, alt dizin ve dizinlere işaret eden sembolik bağlantılarla eşleşir. Eğer desen ardından `os.sep` veya `os.altsep` gelirse dosyalar eşlenmez.

  Eğer include_hidden True ise, “`**`” deseni gizli dizinleri de eşler.

  `pathname`, `recursive` argümanları ile `glob.glob` fonksiyonu için bir denetim olayı tetikler.

  `pathname`, `recursive` , `root_dir`, `dir_fd` argümanları ile `glob.glob/2` fonksiyonu için bir denetim olayı tetikler.

  Not

  “`**`” deseninin geniş dizin ağaçlarıyla kullanımı aşırı derecede zaman harcar.

  Not

  Eğer pathname birden fazla “`**`” deseni içerirse ve recursive True ise fonksiyon tekrar eden yol adları döndürebilir.

  Not

  Any `OSError` exceptions raised from scanning the filesystem are suppressed. This includes `PermissionError` when accessing directories without read permission.

  3.5 sürümünde değişti: “`**`” kullanarak yinelemeli glob’lar için destek eklendi.

  3.10 sürümünde değişti: root_dir ve dir_fd parametreleri eklendi.

  3.11 sürümünde değişti: include_hidden parametresi eklendi.

glob.iglob(pathname, *, root_dir=None, dir_fd=None, recursive=False, include_hidden=False)

  `glob()` fonksiyonuyla aynı değerleri döndüren fakat eş zamanlı olarak saklamayan bir yineleyici döndürür.

  `pathname`, `recursive` argümanları ile `glob.glob` fonksiyonu için bir denetim olayı tetikler.

  `pathname`, `recursive` , `root_dir`, `dir_fd` argümanları ile `glob.glob/2` fonksiyonu için bir denetim olayı tetikler.

  Not

  Eğer pathname birden fazla “`**`” deseni içerirse ve recursive True ise fonksiyon tekrar eden yol adları döndürebilir.

  Not

  Any `OSError` exceptions raised from scanning the filesystem are suppressed. This includes `PermissionError` when accessing directories without read permission.

  3.5 sürümünde değişti: “`**`” kullanarak yinelemeli glob’lar için destek eklendi.

  3.10 sürümünde değişti: root_dir ve dir_fd parametreleri eklendi.

  3.11 sürümünde değişti: include_hidden parametresi eklendi.

glob.escape(pathname)

  Tüm özel karakterlerden (`'?'`, `'*'` and `'['`) kaçar. Eğer özel karakterler içerme ihtimali olan belirsiz bir dizini harfi harfine eşleştirmek istiyorsanız faydalıdır. Sürücü/UNC paylaşım noktalarındaki özel karakterler kaçırılamaz; örneğin Windows’ta `escape('//?/c:/Quo vadis?.txt')` `'//?/c:/Quo vadis[?].txt'` döndürür.

  Added in version 3.4.

glob.translate(pathname, *, recursive=False, include_hidden=False, seps=None)

  Convert the given path specification to a regular expression for use with `re.prefixmatch()`. The path specification can contain shell-style wildcards.

  For example:

      >>> import glob, re
      >>>
      >>> regex = glob.translate('**/*.txt', recursive=True, include_hidden=True)
      >>> regex
      '(?s:(?:.+/)?[^/]*\\.txt)\\z'
      >>> reobj = re.compile(regex)
      >>> reobj.prefixmatch('foo/bar/baz.txt')
      <re.Match object; span=(0, 15), match='foo/bar/baz.txt'>

  Path separators and segments are meaningful to this function, unlike `fnmatch.translate()`. By default wildcards do not match path separators, and `*` pattern segments match precisely one path segment.

  If recursive is true, the pattern segment “`**`” will match any number of path segments.

  If include_hidden is true, wildcards can match path segments that start with a dot (`.`).

  A sequence of path separators may be supplied to the seps argument. If not given, `os.sep` and `altsep` (if available) are used.

  Ayrıca bakınız

  `pathlib.PurePath.full_match()` and `pathlib.Path.glob()` methods, which call this function to implement pattern matching and globbing.

  Added in version 3.13.

## Examples

Consider a directory containing the following files: `1.gif`, `2.txt`, `card.gif` and a subdirectory `sub` which contains only the file `3.txt`. `glob()` will produce the following results. Notice how any leading components of the path are preserved.

    >>> import glob
    >>> glob.glob('./[0-9].*')
    ['./1.gif', './2.txt']
    >>> glob.glob('*.gif')
    ['1.gif', 'card.gif']
    >>> glob.glob('?.gif')
    ['1.gif']
    >>> glob.glob('**/*.txt', recursive=True)
    ['2.txt', 'sub/3.txt']
    >>> glob.glob('./**/', recursive=True)
    ['./', './sub/']

Eğer dizin `.` ile başlayan dosyalar içeriyorsa varsayılan olarak eşleştirilmezler. Örneğin, `card.gif` and `.card.gif`:: dosyalarını içeren bir dizin düşünün.

    >>> import glob
    >>> glob.glob('*.gif')
    ['card.gif']
    >>> glob.glob('.c*')
    ['.card.gif']

Ayrıca bakınız

The `fnmatch` module offers shell-style filename (not path) expansion.

Ayrıca bakınız

`pathlib` modülü yüksek-seviye dizin yolu nesneleri döndürür.