Dokumen ini untuk versi lama Python yang tidak didukung lagi. Anda harus memutakhirkan, dan membaca Dokumentasi Python untuk rilis stabil saat ini.

# `glob` --- Ekspansi pola nama jalur bergaya Unix

Kode sumber: Lib/glob.py

The `glob` module finds all the pathnames matching a specified pattern according to the rules used by the Unix shell, although results are returned in arbitrary order. 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.

Note that 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()`.)

Untuk mencocokan literal, bungkus karakter meta dalam tanda kurung. Misalnya, `'[?]'` cocok dengan karakter `'?'`.

Lihat juga

Modul `pathlib` menawarkan objek jalur tingkat tinggi.

`glob.``glob`(pathname, *, recursive=False)

  Mengembalikan daftar nama jalur yang mungkin kosong yang cocok dengan nama jalur, yang harus berupa string yang berisi spesifikasi jalur. nama jalur dapat berupa absolut (seperti `/usr/src/Python-1.5/Makefile`) atau relatif (seperti `../../Tools/*/*.gif`), dan dapat berisi karakter pengganti bergaya shell. Symlink yang rusak disertakan dalam hasil (seperti di shell). Apakah hasil diurutkan atau tidak tergantung pada sistem file. Jika file yang memenuhi kondisi dihapus atau ditambahkan selama panggilan fungsi ini, apakah nama jalur untuk file tersebut disertakan tidak ditentukan.

  Jika rekursif benar, pola "`**`" akan cocok dengan semua file dan nol atau lebih direktori, subdirektori, dan tautan simbolis ke direktori. Jika pola diikuti oleh `os.sep` atau `os.altsep` maka file tidak akan cocok.

  Memunculkan auditing event `glob.glob` dengan argument `pathname`, `recursive`.

  Catatan

  Menggunakan pola "`**`" di pohon direktori yang besar dapat menghabiskan banyak waktu.

  Berubah pada versi 3.5: Dukungan untuk glob rekursif menggunakan "`**`".

`glob.``iglob`(pathname, *, recursive=False)

  Mengembalikan sebuah iterator yang menghasilkan nilai yang sama dengan `glob()` tanpa benar-benar menyimpan semuanya secara bersamaan.

  Memunculkan auditing event `glob.glob` dengan argument `pathname`, `recursive`.

`glob.``escape`(pathname)

  Escape semua karakter khusus (`'?'`, `'*'` dan `'['`). Ini berguna jika Anda ingin mencocokkan string literal arbitrer yang mungkin memiliki karakter khusus di dalamnya. Karakter khusus dalam drive/titik berbagi UNC tidak di-escape, mis. pada Windows `escape('//?/c:/Quo vadis?.txt')` mengembalikan `'//?/c:/Quo vadis[?].txt'`.

  Baru pada versi 3.4.

Misalnya, pertimbangkan direktori yang berisi file-file berikut: `1.gif`, `2.txt`, `card.gif` dan subdirektori `sub` yang hanya berisi file :file: 3.txt. `glob()` akan memberikan hasil sebagai berikut. Perhatikan bagaimana komponen utama jalur dipertahankan.

    >>> 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/']

Jika direktori berisi file yang dimulai dengan `.` mereka tidak akan dicocokkan secara default. Misalnya, pertimbangkan direktori yang berisi `card.gif` dan `.card.gif`

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

Lihat juga

Modul `fnmatch`

  Ekspansi nama file bergaya shell (bukan jalur)