Broncode: Lib/glob.py

De glob module vindt alle padnamen die overeenkomen met een opgegeven patroon volgens de regels die door de Unix shell worden gebruikt, hoewel de resultaten in willekeurige volgorde worden geretourneerd. Er wordt geen tilde-expansie gedaan, maar *, ?, en karakterranges uitgedrukt met zullen correct worden gematched. Dit wordt gedaan door de functies os.scandir() en fnmatch.fnmatch() samen te gebruiken, en niet door daadwerkelijk een subshell aan te roepen. Merk op dat in tegenstelling tot fnmatch.fnmatch(), glob bestandsnamen beginnend met een punt (.) als speciale gevallen behandelt. (Voor tilde en shell variabele uitbreiding, gebruik os.path.expanduser() enos.path.expandvars().)

Voor een letterlijke overeenkomst, wikkel de meta-karakters tussen haakjes. Bijvoorbeeld, '' komt overeen met het karakter '?'.

Zie ook

De pathlib module biedt high-level pad objecten.

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

Retourneer een mogelijk lege lijst van padnamen die overeenkomen met pathname, die een string moet zijn die een path specificatie bevat. pathname kan zowel absoluut (zoals /usr/src/Python-1.5/Makefile) als relatief (zoals../../Tools/*/*.gif) zijn, en kan shell-stijl jokertekens bevatten. Brokensymlinks worden in de resultaten opgenomen (zoals in de shell). Of de resultaten al dan niet gesorteerd zijn, hangt af van het bestandssysteem. Als een bestand dat aan de voorwaarden voldoet wordt verwijderd of toegevoegd tijdens de aanroep van deze functie, wordt niet gespecificeerd of de padnaam voor dat bestand wordt opgenomen.

Als recursief waar is, komt het patroon “**” overeen met alle bestanden en met nul of meer directories, submappen en symbolische koppelingen naar directories. Als het patroon wordt gevolgd door een os.sep of os.altsep dan zullen bestanden niet overeenkomen.

Oproept een controle-gebeurtenis glob.glob op met argumenten pathname, recursive.

Note

Het gebruik van het “**” patroon in grote mapstructuren kan een buitensporige hoeveelheid tijd in beslag nemen.

Veranderd in versie 3.5: ondersteuning voor recursieve globs met “**“.

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

Retourneert een iterator die dezelfde waarden oplevert als glob() zonder ze daadwerkelijk allemaal tegelijk op te slaan.

Roepen een controlegebeurtenis glob.glob op met als argumenten pathname, recursive.

glob.escape(padnaam)¶

Esceneren alle speciale tekens ('?', '*' en '.txt'.

Nieuw in versie 3.4.

Bedenk bijvoorbeeld een directory met de volgende bestanden:1.gif, 2.txt, card.gif en een subdirectory sub die alleen het bestand 3.txt bevat. glob() zal het volgende resultaat opleveren. Merk op hoe alle leidende componenten van het pad worden behouden.

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

Als de directory bestanden bevat die beginnen met ., zullen deze standaard niet worden gevonden. Neem bijvoorbeeld een directory die card.gif en.card.gif bevat:

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

Zie ook

Module fnmatch

Shell-stijl bestandsnaam (niet pad) uitbreiding

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.