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 sub
alkö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
.