Kildekode: Lib/glob.py

Modulet glob finder alle de pathnames, der matcher et angivet mønster i overensstemmelse med de regler, der anvendes af Unix-shell’en, selv om resultaterne returneres i vilkårlig rækkefølge. Der foretages ingen tildeudvidelse, men *, ? og tegnområder udtrykt med vil blive matchet korrekt. Dette gøres ved at bruge funktionerne os.scandir() og fnmatch.fnmatch() i fællesskab og ikke ved faktisk at påkalde en subshell. Bemærk, at i modsætning til fnmatch.fnmatch() behandler glob filnavne, der begynder med et punktum (.), som særtilfælde (for tilde- og shell-variabeludvidelse skal du bruge os.path.expanduser() ogos.path.expandvars()).)

For et bogstaveligt match skal du indpakke meta-tegnene i parenteser. '' matcher f.eks. tegnet '?'.

Se også

Modulet pathlib tilbyder stiobjekter på højt niveau.

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

Returnerer en muligvis tom liste af stinavne, der matcher pathname, som skal være en streng, der indeholder en stispecifikation. pathname kan enten være absolut (som /usr/src/Python-1.5/Makefile) eller relativ (som../../Tools/*/*.gif) og kan indeholde shell-lignende jokertegn. Brokensymlinks er inkluderet i resultaterne (som i skallen). Om resultaterne er sorteret eller ej afhænger af filsystemet. Hvis en fil, der opfylder betingelserne, fjernes eller tilføjes under kald af denne funktion, er det ikke specificeret, om et stinavn for den pågældende fil skal medtages.

Hvis rekursiv er sandt, vil mønsteret “**” matche alle filer og nul eller flere mapper, undermapper og symbolske links til mapper. Hvis mønsteret efterfølges af et os.sep eller os.altsep, vil filer ikke matche.

Afstedkommer en revisionshændelse glob.glob med argumenterne pathname, recursive.

Note

Anvendelse af mønsteret “**” i store mappetræer kan tage uforholdsmæssig lang tid.

Ændret i version 3.5: Understøttelse af rekursive globs ved hjælp af “**“.

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

Returnerer en iterator, der giver de samme værdier som glob()uden faktisk at lagre dem alle samtidig.

Fremkalder en revisionsbegivenhed glob.glob med argumenterne pathname, recursive.

glob.escape(pathname)¶

Fremkalder alle specialtegn ('?', '*' og '.txt'.

Nyt i version 3.4.

Tænk f.eks. på en mappe, der indeholder følgende filer: 1.gif, 2.txt, card.gif og en undermappe sub, som kun indeholder filen 3.txt. glob() vil give følgende resultater. Bemærk, hvordan eventuelle ledende komponenter i stien bevares.

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

Hvis mappen indeholder filer, der starter med ., vil de ikke blive matchet som standard. Overvej f.eks. en mappe, der indeholder card.gif og.card.gif:

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

Se også

Modul fnmatch

Shell-style filnavn (ikke sti) ekspansion

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.