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

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.

   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.

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

   Convert the given path specification to a regular expression for
   use with "re.match()". 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.match('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.
