Källkod: Lib/glob.py

Modulen glob hittar alla sökvägar som matchar ett angivet mönster enligt de regler som används av Unix-skalet, även om resultaten returneras i en godtycklig ordning. Ingen tildeexpansion görs, men *, ? och teckenområden som uttrycks med matchas korrekt. Detta görs genom att använda funktionerna os.scandir() och fnmatch.fnmatch() tillsammans, och inte genom att faktiskt anropa en subshell. Observera att till skillnad från fnmatch.fnmatch() behandlar glob filnamn som börjar med en punkt (.) som specialfall (för tilde och expansion av skalvariabler, använd os.path.expanduser() ochos.path.expandvars()).)

För en bokstavsmässig matchning omsluter du metatecknen i parenteser. '' matchar till exempel tecknet '?'.

Se även

Modulen pathlib erbjuder sökvägsobjekt på hög nivå.

glob.glob(pathname, *, recursive=False)¶

Returnerar en eventuellt tom lista med sökvägsnamn som matchar pathname, som måste vara en sträng som innehåller en sökvägsspecifikation. pathname kan vara antingen absolut (som /usr/src/Python-1.5/Makefile) eller relativ (som../../Tools/*/*.gif), och kan innehålla jokertecken i shell-stil. Brokensymlänkar inkluderas i resultaten (som i skalet). Huruvida resultaten är sorterade eller inte beror på filsystemet. Om en fil som uppfyller villkoren tas bort eller läggs till under anropet av den här funktionen, är det ospecificerat om sökvägsnamnet för den filen ska inkluderas.

Om rekursivt är sant kommer mönstret ”**” att matcha alla filer och noll eller fler kataloger, underkataloger och symboliska länkar till kataloger. Om mönstret följs av ett os.sep eller os.altsep kommer filerna inte att matcha.

Avgerar en granskningshändelse glob.glob med argumenten pathname, recursive.

Anmärkning

Användning av ”**”-mönstret i stora katalogträd kan ta orimligt mycket tid i anspråk.

Förändras i version 3.5: Stöd för rekursiva globs som använder ”**”.

glob.iglob(pathname, *, recursive=False)¶

Returnerar en iterator som ger samma värden som glob()utan att faktiskt lagra dem alla samtidigt.

Raddar en granskningshändelse glob.glob med argumenten pathname, recursive.

glob.escape(pathname)¶

Upphäver alla specialtecken ('?', '*' och '.txt'.

Nytt i version 3.4.

Tänk till exempel på en katalog som innehåller följande filer: 1.gif, 2.txt, card.gif och en underkatalog subsom endast innehåller filen 3.txt. glob() ger följande resultat. Lägg märke till att alla ledande komponenter i sökvägen bevaras.

>>> import glob>>> glob.glob('./.*')>>> glob.glob('*.gif')>>> glob.glob('?.gif')>>> glob.glob('**/*.txt', recursive=True)>>> glob.glob('./**/', recursive=True)

Om katalogen innehåller filer som börjar med . kommer de inte att matchas som standard. Tänk till exempel på en katalog som innehåller card.gif och.card.gif:

>>> import glob>>> glob.glob('*.gif')>>> glob.glob('.c*')

Se även

Modul fnmatch

Expansion av filnamn (inte sökväg) i shell-stil

Lämna ett svar

Din e-postadress kommer inte publiceras.