Forráskód: A glob modul megtalálja a megadott mintának megfelelő összes elérési nevet a Unix shell által használt szabályok szerint, bár az eredmények tetszőleges sorrendben kerülnek visszaadásra. Tilde kiterjesztés nem történik, de a *, ?, és a -val kifejezett karaktersorozatok helyesen illeszkednek. Ez a os.scandir() és a fnmatch.fnmatch() függvények együttes használatával történik, és nem az alhéj tényleges meghívásával. Megjegyzendő, hogy a fnmatch.fnmatch()-vel ellentétben a glob a ponttal (.) kezdődő fájlneveket speciális esetként kezeli (a tilde és a héjváltozók bővítéséhez használja a os.path.expanduser() és os.path.expandvars() függvényeket).)

Szó szerinti egyezéshez a metakaraktereket zárójelbe kell zárni.Például a '' a '?' karakterrel egyezik meg.

Lásd még

A pathlib modul magas szintű útvonalobjektumokat kínál.

glob.glob(pathname, *, rekurzív=False)¶

A pathname-nek megfelelő elérési utak esetleg üres listáját adja vissza, amelynek egy elérési utat tartalmazó karakterláncnak kell lennie. pathname lehet abszolút (mint /usr/src/Python-1.5/Makefile) vagy relatív (mint ../../Tools/*/*.gif), és tartalmazhat shell-stílusú jokereket. A brokensymlinkek szerepelnek az eredményekben (mint a shellben). Az, hogy az eredmények rendezettek-e vagy sem, a fájlrendszertől függ. Ha a függvény hívása során egy feltételeknek megfelelő fájl eltávolításra vagy hozzáadásra kerül, akkor a fájl elérési útvonalának neve nem meghatározott.

Ha a rekurzív igaz, akkor a “**” minta bármely fájlra és nulla vagy több könyvtárra, alkönyvtárra és könyvtárakra mutató szimbolikus hivatkozásra illeszkedik. Ha a mintát egy os.sep vagy os.altsep követi, akkor a fájlok nem illeszkednek.

Elindít egy glob.glob ellenőrzési eseményt pathname, recursive argumentumokkal.

Megjegyzés

A “**” minta használata nagy könyvtárfákban túlzottan sok időt vehet igénybe.

Változott a 3.5-ös verzióban: A “**“-t használó rekurzív globok támogatása.

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

Egy olyan iterátort ad vissza, amely ugyanazokat az értékeket adja vissza, mint glob() anélkül, hogy ténylegesen egyszerre tárolná őket.

Elhív egy glob.glob ellenőrző eseményt pathname, recursive argumentumokkal.

glob.escape(pathname)¶

Elhagyja az összes speciális karaktert ('?', '*' és '.txt'.

Új a 3.4-es verzióban.

Tegyük fel például, hogy egy könyvtár a következő fájlokat tartalmazza:1.gif, 2.txt, card.gif és egy subalkönyvtárat, amely csak a 3.txt fájlt tartalmazza. A glob() a következő eredményeket fogja eredményezni. Figyeljük meg, hogy az elérési útvonal vezető elemei megmaradnak.

>>> import glob>>> glob.glob('./.*')>>> glob.glob('*.gif')>>> glob.glob('?.gif')>>> glob.glob('**/*.txt', recursive=True)>>> glob.glob('./**/', recursive=True)

Ha a könyvtár .-vel kezdődő fájlokat tartalmaz, azok alapértelmezés szerint nem kerülnek megfeleltetésre. Vegyünk például egy olyan könyvtárat, amely card.gif és.card.gif:

>>> import glob>>> glob.glob('*.gif')>>> glob.glob('.c*')

See also

Module fnmatch

Shell-style filename (not path) expansion

.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.