Lähdekoodi: Lib/glob.py
glob
moduuli etsii kaikki määritetyn kuvion mukaiset polunnimet Unixin komentotulkin käyttämien sääntöjen mukaisesti, vaikka tulokset palautetaankin mielivaltaisessa järjestyksessä. Tilde-laajennusta ei tehdä, mutta *
, ?
ja :lla ilmaistut merkkijonot sovitetaan oikein. Tämä tapahtuu käyttämällä
os.scandir()
– ja fnmatch.fnmatch()
-funktioita yhdessä, eikä kutsumalla varsinaista subshelliä. Huomaa, että toisin kuin fnmatch.fnmatch()
,glob
käsittelee pisteellä (.
) alkavia tiedostonimiä erikoistapauksina (Tilde- ja shell-muuttujien laajentamiseen käytä os.path.expanduser()
ja os.path.expandvars()
.).)
Litteraalista vastaavuutta varten kiedo metamerkit sulkuihin.Esimerkiksi ''
vastaa merkkiä '?'
.
Katso myös
Moduuli pathlib
tarjoaa korkean tason polkuobjektit.
glob.
glob
(pathname, *, recursive=False)¶
Palauttaa mahdollisesti tyhjän listan polunnimistä, jotka vastaavat pathnamea, jonka on oltava merkkijono, joka sisältää polun määrittelyn. pathname voi olla joko absoluuttinen(kuten /usr/src/Python-1.5/Makefile
) tai suhteellinen (kuten../../Tools/*/*.gif
), ja se voi sisältää shell-tyylisiä jokerimerkkejä. Brokensymlinkit sisällytetään tuloksiin (kuten komentotulkissa). Se, lajitellaanko tulokset vai ei, riippuu tiedostojärjestelmästä. Jos tämän funktion kutsun aikana poistetaan tai lisätään tiedosto, joka täyttää ehdot, ei määritetä, sisällytetäänkö kyseisen tiedoston polkunimi.
Jos rekursiivinen on true, kuvio ”**
” täsmää kaikkiin tiedostoihin ja nollaan tai useampaan hakemistoon, alihakemistoon ja hakemistojen symbolisiin linkkeihin. Jos kuviota seuraa os.sep
tai os.altsep
, tiedostot eivät sovi.
Ohjaa tarkastustapahtuman glob.glob
argumenteilla pathname
, recursive
.
Huomautus
Kuvion ”**
” käyttäminen suurissa hakemistopuissa voi kuluttaa kohtuuttomasti aikaa.
Muutettu versiossa 3.5: Tuki rekursiivisille globeille käyttäen ”**
”.
glob.
iglob
(pathname, *, recursive=False)¶
Palauttaa iteraattorin, joka tuottaa samat arvot kuin glob()
ilman, että niitä itse asiassa tallennetaan kaikkia samanaikaisesti.
Nostaa tarkastustapahtuman glob.glob
argumenteilla pathname
, recursive
.
glob.
escape
(polkunimi)¶
Poista kaikki erikoismerkit ('?'
, '*'
ja '.txt'
.
Uusi versiossa 3.4.
Tarkastellaan esimerkiksi hakemistoa, joka sisältää seuraavat tiedostot: 1.gif
, 2.txt
, card.gif
ja alihakemisto sub
, joka sisältää vain tiedoston 3.txt
. glob()
tuottaa seuraavat tulokset. Huomaa, että polun etumerkit säilyvät.
>>> import glob>>> glob.glob('./.*')>>> glob.glob('*.gif')>>> glob.glob('?.gif')>>> glob.glob('**/*.txt', recursive=True)>>> glob.glob('./**/', recursive=True)
Jos hakemisto sisältää tiedostoja, jotka alkavat kirjaimella .
, niitä ei soviteta oletusarvoisesti. Tarkastellaan esimerkiksi hakemistoa, joka sisältää card.gif
ja.card.gif
:
>>> import glob>>> glob.glob('*.gif')>>> glob.glob('.c*')
Katso myös
Moduuli fnmatch
Shell-tyylinen tiedostonimen (ei polun) laajentaminen
.