glob
egy általános kifejezés, amelyet olyan technikák meghatározására használnak, amelyek megfelelnek a megadott mintáknak a Unix héjhoz kapcsolódó szabályok szerint. A Linux és Unix rendszerek és héjak szintén támogatják a glob-ot, és biztosítják a glob() funkciót a rendszerkönyvtárakban. Ebben az oktatóanyagban a glob()
Funkcióhasználat Python programozási nyelven.
a glob()
és a kapcsolódó funkciók használatához importálnunk kell a glob
modult. Ne feledje, hogy aglob
modul tartalmazza aglob()
és egyéb kapcsolódó funkciókat.
import glob
pontos karakterlánc keresés
egy egyszerű példával kezdjük. Megnézzük, hogyan lehet a pontos karakterláncot vagy fájlnevet abszolút elérési úttal egyeztetni. Ebben a példában felsoroljuk a /home/ismail/poftut.c
fájlt . Láthatjuk az alábbi példát, hogy a függvény egy listát ad vissza, amely egyezéseket tartalmaz.
glob.glob("/home/ismail/poftut.c")
helyettesítő karakterek
a helyettesítő karakter fontos Glob operátor a glob műveletekhez. A helyettesítő karakter vagy a csillag nulla vagy több karakter illesztésére szolgál. Helyettesítő karakter megadva, hogy lehet nulla karakter vagy több karakter, ahol a karakter nem fontos. Ebben az exmaple-ban olyan fájlokat fogunk egyeztetni, amelyeknek .txt
kiterjesztése van.
glob.glob("/home/ismail/*.txt")
mint tudjuk nézze meg, hogy sok .txt
fájl van, amelyek egy python listában térnek vissza.
helyettesítő karakterek többszintű könyvtárakkal
helyettesítő karaktereket használhatunk a többszintű könyvtárak megadásához. Ha egy szinttel lejjebb szeretnénk keresni a megadott glob könyvtárakat, akkor a /*/
értéket fogjuk használni . Ebben a példában a .txt
fájlokat keressük egy szinttel lejjebb a /home/ismail
könyvtárban . Ezt “glob glob” – nak is nevezik, mert a glob modul nevét és a glob függvényt használjuk, amelyet a glob modul biztosít.
glob.glob("/home/ismail/*/*.txt")
egykarakteres helyettesítő
van egy kérdőjel, amelyet egyetlen karakter illesztésére használnak. Ez hasznos lehet, ha nem tudjuk, egyetlen karakter adott nevet. Ebben a példában a fájlokat a file?.txt
fájlokkal fogjuk egyeztetni, ahol ezek megfelelnek a
- fájlnak.txt
- fájl1.txt
- fájl5.txt
- …
glob.glob("/home/ismail/file?.txt")
több karakter
a Glob alfabetikus és numerikus karaktereket is támogat. Használhatjuk a karaktertartomány befejezésére szolgál. Azt tudunk tenni, amit akarunk, hogy megfeleljen a szögletes zárójelben. Ebben a példában a
e,m,p
fájl-és mappaneveket fogjuk egyeztetni .
glob.glob("/home/ismail/*.tx?")
számtartományok
bizonyos esetekben érdemes egyeztetni a számtartományt. Használhatjuk a -
kötőjelet a kezdő és a záró számok megadásához. Ebben a példában a 0-tól 9-ig egyezünk a 0-9
értékkel. Ebben a példában a 0-tól 9-ig terjedő számokat tartalmazó fájl-és mappaneveket fogjuk egyeztetni.
glob.glob("/home/ismail/**")
ábécé tartományok
a számtartományokhoz hasonló ábécé tartományokat is meghatározhatunk. fogjuk használni a-z
kisbetűk, ahol A-Z nagybetűk. Mi van, ha meg kell egyeznie a kis-és nagybetűs karakterek egyetlen nyilatkozatot. Használhatjuk az A-Z-t, hogy megfeleljen mind az alsó, mind a nagybetűknek. Ebben a példában a a
és c
glob.glob("/home/ismail/*")
vissza generátor iglob() mehtod
általában glob módszert használják a fájlok listázására a megadott minták. De bizonyos esetekben a Felsorolás és tárolás unalmas munka lehet. Tehát iglob()
függvény használható egy iterátor létrehozására, amely felhasználható a fájlnevek iterálására a next()
funkcióval.
import glob
gen = glob.iglob("*.txt")
for item in gen:
print(item)
skip konkrét karakterek Escape() módszer
escape()
funkció lehet használni, hogy kihagyja, vagy nem felsorolni néhány fájlt ezek a nevek határozza meg a karaktereket. Például, ha át akarjuk hagyni a fájlokat, akkor ezek a nevek tartalmazzák -
vagy _
vagy #
használhatjuk az escape() függvényt ezeknek a karaktereknek a megadásával.
chars_skip = "-_#"
for char_skip in chars_skip:
esc_set = "*" + glob.escape(char_skip)+ "*" + ".txt"
for txt in (glob.glob(esc_set)):
print(txt)