glob
--- Ekspansi pola nama jalur bergaya Unix¶
Kode sumber: Lib/glob.py
Modul glob
menemukan semua nama lokasi yang cocok dengan pola yang ditentukan sesuai dengan aturan yang digunakan oleh shell Unix, meskipun hasilnya dikembalikan dalam urutan arbitrer. Tidak ada ekspansi tilde yang dilakukan, tetapi *
, ?
, Dan rentang karakter yang diekspresikan dengan []
akan dicocokkan dengan benar. Ini dilakukan dengan menggunakan fungsi os.scandir()
dan fnmatch.fnmatch()
secara bersamaan, dan bukan dengan benar-benar memanggil subshell. Perhatikan bahwa tidak seperti fnmatch.fnmatch()
, glob
memperlakukan nama file yang dimulai dengan titik (.
) sebagai kasus khusus. (Untuk ekspansi variabel tilde dan shell, gunakan os.path.expanduser()
dan 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 olehos.sep
atauos.altsep
maka file tidak akan cocok.Memunculkan auditing event
glob.glob
dengan argumentpathname
,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 argumentpathname
,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 Windowsescape('//?/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)