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

Kaynak kod Lib/glob.py

`glob` modülü Unix kabuğu tarafından kullanılan kurallarına uyarak spesifik desenlerle eşleşen tüm yol adlarını bulur ve sonucu gelişigüzel bir sırada ile döndürür. Tilde açılımı yapılmaz fakat `[]` içinde ifade edilen karakter aralığı ve `*`, `?` karakterleri eşleştirilir. Bu işlem `os.scandir()` ve `fnmatch.fnmatch()` fonksiyonlarının birlikte çalışması ile olur ve bir altkabuk çağırılmaz.

Dikkat edilmeli ki `fnmatch.fnmatch()` veya `pathlib.Path.glob()` aksine, nokta (`.`) ile başlayan dosyalar sadece nokta ile başlayan desenler ile eşleştirilebilir. (Tilde ve kabuk değişken açılımları için `os.path.expanduser()` ve `os.path.expandvars()` kullanın.)

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

Ayrıca bakınız

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

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.

  Eğer root_dir `None` değilse, arama için kök dizini belirten bir yol benzeri nesne olmalıdır. Bu, `glob()` fonksiyonu üzerinde, fonksiyonu çağırmadan önce geçerli dizini değiştirmekle aynı etkiyi yaratır. Eğer pathname göreceli bir yol ise, sonuç root_dir’den itibaren oluşturulmuş göreceli yolları içerir.

  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.

  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.

  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.

Örneğin, `1.gif`, `2.txt`, `card.gif` dosyalarını içeren bir dizin ve `sub` adında sadece `3.txt` dosyasını içeren bir alt dizin düşünün. `glob()` aşağıdaki sonuçları üretir. Yolun başlangıç bileşenlerinin nasıl korunduğuna dikkat edin.

    >>> 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

Modül `fnmatch`

  Kabuk-tarzı dosya ismi (yol adı değil) açılımı