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

.

Vastaa

Sähköpostiosoitettasi ei julkaista.