Source code: Lib/glob.py

Das globModul findet alle Pfadnamen, die mit einem angegebenen Muster übereinstimmen, gemäß den von der Unix-Shell verwendeten Regeln, wobei die Ergebnisse in beliebiger Reihenfolge zurückgegeben werden. Es wird keine Tilde-Expansion durchgeführt, aber *, ? und mit ausgedrückte Zeichenfolgen werden korrekt zugeordnet. Dies geschieht durch die gleichzeitige Verwendung der Funktionen os.scandir() und fnmatch.fnmatch() und nicht durch den eigentlichen Aufruf einer Subshell. Beachten Sie, dass glob im Gegensatz zu fnmatch.fnmatch() Dateinamen, die mit einem Punkt (.) beginnen, als Sonderfälle behandelt (für Tilde und Shell-Variablenexpansion verwenden Sie os.path.expanduser() undos.path.expandvars()).)

Für eine wörtliche Übereinstimmung werden die Metazeichen in eckige Klammern eingeschlossen, z.B. passt '' auf das Zeichen '?'.

Siehe auch

Das Modul pathlib bietet High-Level-Pfadobjekte.

glob.glob(Pfadname, *, rekursiv=False)¶

Gibt eine möglicherweise leere Liste von Pfadnamen zurück, die mit pathname übereinstimmen. pathname muss eine Zeichenkette sein, die eine Pfadspezifikation enthält. pathname kann entweder absolut (wie /usr/src/Python-1.5/Makefile) oder relativ (wie../../Tools/*/*.gif) sein und kann Shell-ähnliche Wildcards enthalten. Brokensymlinks sind in den Ergebnissen enthalten (wie in der Shell). Ob die Ergebnisse sortiert sind oder nicht, hängt vom Dateisystem ab. Wenn eine Datei, die die Bedingungen erfüllt, während des Aufrufs dieser Funktion entfernt oder hinzugefügt wird, ist nicht festgelegt, ob ein Pfadname für diese Datei eingeschlossen werden soll.

Wenn rekursiv wahr ist, wird das Muster „**“ auf alle Dateien und null oder mehr Verzeichnisse, Unterverzeichnisse und symbolische Links auf Verzeichnisse passen. Wenn das Muster von einem os.sep oder os.altsep gefolgt wird, passen die Dateien nicht.

Löst ein Überprüfungsereignis glob.glob mit den Argumenten pathname, recursive aus.

Hinweis

Die Verwendung des Musters „**“ in großen Verzeichnisbäumen kann übermäßig viel Zeit in Anspruch nehmen.

Geändert in Version 3.5: Unterstützung für rekursive Globs mit „**„.

glob.iglob(Pfadname, *, rekursiv=False)¶

Rückgabe eines Iterators, der die gleichen Werte wie glob() liefert, ohne sie alle gleichzeitig zu speichern.

Löst ein Prüfereignis glob.glob mit den Argumenten pathname, recursive aus.

glob.escape(Pfadname)¶

Entfernt alle Sonderzeichen ('?', '*' und '.txt'.

Neu in Version 3.4.

Betrachten wir zum Beispiel ein Verzeichnis, das die folgenden Dateien enthält:1.gif, 2.txt, card.gif und ein Unterverzeichnis sub, das nur die Datei 3.txt enthält. glob() führt zu den folgenden Ergebnissen. Beachten Sie, dass alle führenden Komponenten des Pfades erhalten bleiben.

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

Wenn das Verzeichnis Dateien enthält, die mit . beginnen, werden diese standardmäßig nicht gefunden. Betrachten wir zum Beispiel ein Verzeichnis, das card.gif und.card.gif enthält:

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

Siehe auch

Modul fnmatch

Shell-Stil Dateinamen- (nicht Pfad-) Erweiterung

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.