Python Glob modul – Glob() módszer

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

.

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

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