Ez a bemutató áttekintést nyújt a glob modul Python glob() módszeréről. Több példát is tartalmaz a világosság érdekében.
A programozóknak általában szükségük van arra, hogy átfussanak egy fájllistán egy bizonyos helyen, többnyire egy meghatározott mintával. A Python glob modulja számos olyan funkcióval rendelkezik, amelyek segíthetnek egy megadott mappa alatti fájlok listázásában. Szűrhetjük őket kiterjesztések alapján, vagy egy adott karakterlánccal, mint a fájlnév egy részével.
A Glob modul minden metódusa a Unix-stílusú mintaillesztési mechanizmust és szabályokat követi. Nem engedélyezi azonban a tilde (~) és a környezeti változók kiterjesztését.
Python Glob() metódusok
A mai napon a Glob modul három elsődleges funkcióját fogjuk tárgyalni.
glob(file_pattern, recursive = False)
A file_pattern paraméterben megadott mintának megfelelő fájlok listáját hívja le.
A file_pattern lehet abszolút vagy relatív útvonal. Tartalmazhat jokereket is, például “*” vagy “?” szimbólumokat.
A rekurzív paraméter alapértelmezés szerint ki van kapcsolva (False). Ha True, akkor rekurzívan keresi a fájlokat az aktuális könyvtár összes alkönyvtárában.
Nézzünk most néhány példát:
A jelenlegi könyvtár ellenőrzése Python script fájlok után
Az alábbi kód csak az aktuális könyvtárban lévő .py fájlokat ellenőrzi.
>>> import glob>>> for py in glob.glob("*.py"):... print(py)...copy_file1.pycopy_file2.pydecimal_sample.py
Egy másik példakód – Az aktuális dir-ben és az alkönyvtárakban lévő .py fájlokat ellenőrzi.
>>> import glob>>> for py in glob.glob("*.py"):... print(py)...copy_file1.pycopy_file2.pydecimal_sample.pytest_num.pytest_python_in_with_if.pytest_scope.py
Fájlok listázása mintával
Megadhatunk egy útnévmintát néhány vadkártyával, mint például ? vagy számtartomány . Az alábbi kód felsorolja az összes olyan fájlt, amelynek neve “test”-tel kezdődik, amelyet egy szám követ.
>>> for py in glob.glob("test.py"):... print(py)...test1.pytest2.py
Lássunk még egy példát, amelyben a kérdőjelet használjuk a mintában.
>>> for py in glob.glob("?????.py"):... print(py)...quiz1.pytest1.pytest2.py
A fenti for ciklus utasítás az összes olyan .py fájlt kiírta, amelynek öt betűje van.
A következő utasítás az aktuális munkakönyvtárban rekurzívan kiírná a mappák neveit.
>>> glob.glob('selenium/**/', recursive=True)
iglob() metódus | Python Glob
Ez a metódus egy Python generátor objektumot hoz létre, amely egy adott könyvtár alatti fájlok listázására használható. A next() függvényt hívhatjuk a fájlok nevének kiírásához.
Nézze meg az alábbi mintakódot:
>>> gen = glob.iglob("*.py")>>> type(gen)<class 'generator'>>>> for py in gen:... print(py)...copy_file1.pycopy_file2.pydecimal_sample.pyfind_seed.pyfrozen_set.py
escape() metódus
Ez lehetővé teszi a megadott karaktersorozat kikerülését. Hasznos lehet olyan fájlok megtalálásához, amelyek fájlnevében bizonyos karakterek szerepelnek.
Nézze meg az alábbi példákat:
>>> char_seq = "-_#">>> for spcl_char in char_seq:... esc_set = "*" + glob.escape(spcl_char) + "*" + ".py"... for py in (glob.glob(esc_set)):... print(py)...python quiz-classes-2.pypython-class.pypython-lists.pypython-random#num.pypython-set.pypython-tuples.pypython-while_loop.pycopy_file#2.pydecimal_sample.pyfind_seed.pyfrozen-set.py
Must check out – Python to list all files in a directory
.