Deze tutorial geeft een overzicht van de Python glob() methode van de glob module. Er worden verschillende voorbeelden gegeven om meer duidelijkheid te scheppen.
In de regel moeten programmeurs een lijst met bestanden op een bepaalde locatie doorzoeken, meestal met een specifiek patroon. Python’s glob module heeft verschillende functies die kunnen helpen bij het maken van een lijst van bestanden onder een bepaalde map. We kunnen ze filteren op basis van extensies, of met een bepaalde string als een deel van de bestandsnaam.
Alle methoden van Glob module volgen het Unix-stijl patroon matching mechanisme en regels. Het staat echter niet toe om de tilde (~) en omgevingsvariabelen uit te breiden.
Python Glob() Methoden
Vandaag gaan we drie primaire functies van Glob module bespreken.
glob(file_pattern, recursive = False)
Het haalt de lijst met bestanden op die overeenkomen met het opgegeven patroon in de file_pattern parameter.
Het file_pattern kan een absoluut of relatief pad zijn. Het kan ook wild cards bevatten zoals “*” of “?” symbolen.
De recursieve parameter staat standaard uit (False). Wanneer True, het recursief zoekt bestanden onder alle subdirectories van de huidige directory.
Laten we nu eens kijken naar een aantal voorbeelden:
Controleer de huidige directory voor Python script bestanden
De onderstaande code controleert voor .py bestanden in de huidige dir alleen.
>>> import glob>>> for py in glob.glob("*.py"):... print(py)...copy_file1.pycopy_file2.pydecimal_sample.py
Een ander voorbeeld code – Het controleert op .py bestanden in de huidige dir en subdirectories.
>>> 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
Lijst bestanden met een patroon
We kunnen een padnaam patroon opgeven door het opnemen van een aantal wild cards zoals ? of numerieke reeks . De onderstaande code geeft een lijst van alle bestanden waarvan de naam begint met “test” gevolgd door een nummer.
>>> for py in glob.glob("test.py"):... print(py)...test1.pytest2.py
Laten we nog een voorbeeld met behulp van het vraagteken in het patroon.
>>> for py in glob.glob("?????.py"):... print(py)...quiz1.pytest1.pytest2.py
De bovenstaande for-lus statement afgedrukt alle .py bestanden met vijf letters.
Het volgende statement zou de namen van mappen recursief afdrukken in de huidige werkdirectory.
>>> glob.glob('selenium/**/', recursive=True)
iglob() methode | Python Glob
Deze methode creëert een Python generator object dat kan worden gebruikt om een lijst van bestanden onder een bepaalde directory te maken. U kunt de next() functie aanroepen om namen van bestanden af te drukken.
Kijk naar de voorbeeldcode hieronder:
>>> 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() method
Het maakt het mogelijk om de gegeven tekenreeks te escapen. Dit kan handig zijn om bestanden met bepaalde tekens in hun bestandsnaam op te sporen.
Kijk eens naar de onderstaande voorbeelden:
>>> 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
Moet u zien – Python om alle bestanden in een directory op te sommen