Globbing und Iteration
Dateien mit Glob-Mustern finden
Globbing und Iteration ist eine kostenlose Python Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Python Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Python Academy-Kurs umfasst insgesamt 4 Lektionen.
Dateien finden
Mit pathlib können Sie Verzeichnisinhalte einfach auflisten und nach Dateien suchen, die einem Muster entsprechen. Die wichtigsten Methoden sind iterdir, glob und rglob.
Beispielverzeichnisstruktur einrichten
Um diese Methoden zu erkunden, erstellen wir zunächst ein kleines Verzeichnis mit Dateien. Für diese Einrichtung wird ausschließlich die Standardbibliothek verwendet.
from pathlib import Path
root = Path('sample')
root.mkdir(exist_ok=True)
(root / 'a.txt').write_text('1')
(root / 'b.txt').write_text('2')
(root / 'c.log').write_text('3')
print('created files')iterdir listet Inhalte auf
iterdir() liefert jeden Eintrag direkt innerhalb eines Verzeichnisses einzeln als Path-Objekt.
from pathlib import Path
root = Path('sample')
for entry in sorted(root.iterdir()):
print(entry.name)glob mit einem Muster
glob() findet Einträge, die einem Muster im Shell-Stil entsprechen. Der Platzhalter * steht für eine beliebige Folge von Zeichen.
from pathlib import Path
root = Path('sample')
for txt in sorted(root.glob('*.txt')):
print(txt.name)Platzhalter für ein einzelnes Zeichen
Der Platzhalter ? steht genau für ein Zeichen und ist daher für Namen mit fester Länge nützlich.
from pathlib import Path
root = Path('sample')
for m in sorted(root.glob('?.txt')):
print(m.name)Zeichenbereiche
Eckige Klammern stehen für ein beliebiges einzelnes Zeichen aus einer Menge oder einem Bereich, genau wie bei der Verwendung von Globbing in der Shell.
from pathlib import Path
root = Path('sample')
for m in sorted(root.glob('[ab].txt')):
print(m.name)Rekursives Globbing mit rglob
rglob() durchsucht ein Verzeichnis und alle seine Unterverzeichnisse. Die Methode entspricht glob('**/pattern').
from pathlib import Path
root = Path('sample')
(root / 'nested').mkdir(exist_ok=True)
(root / 'nested' / 'deep.txt').write_text('x')
for m in sorted(root.rglob('*.txt')):
print(m)Treffer zählen
Die Ergebnisse von Glob sind Iteratoren. Umschließen Sie einen davon mit list(), um die Treffer zu zählen oder erneut zu verwenden.
from pathlib import Path
root = Path('sample')
txts = list(root.rglob('*.txt'))
print('found', len(txts), 'text files')Beim Durchlaufen filtern
Kombinieren Sie Globbing mit den Prüfungen is_file oder is_dir, um die Ergebnisse gezielt zu filtern.
from pathlib import Path
root = Path('sample')
files = [p for p in root.iterdir() if p.is_file()]
for f in sorted(files):
print(f.name)Gefundene Dateien verarbeiten
Sobald Sie die Treffer haben, können Sie jede Datei einlesen. Hier summieren wir den Inhalt jeder Textdatei in der Verzeichnisstruktur.
from pathlib import Path
root = Path('sample')
total = 0
for p in root.rglob('*.txt'):
text = p.read_text().strip()
if text.isdigit():
total += int(text)
print('total:', total)Glob-Ergebnisse sortieren
Glob garantiert keine bestimmte Reihenfolge. Umschließen Sie die Ergebnisse mit sorted(), wenn Sie eine deterministische Ausgabe benötigen, zum Beispiel beim Erstellen eines Berichts.
from pathlib import Path
root = Path('sample')
for p in sorted(root.glob('*'), key=lambda x: x.name):
print(p.name)Kurzer Test
Was ist der Unterschied zwischen glob und rglob?
Zusammenfassung
Sie haben gelernt, Dateien mit Glob-Mustern zu finden.
iterdirlistet direkte Inhalte auf.globsucht nach einem Muster (*,?,[...]).rglobdurchsucht Verzeichnisse rekursiv.- Kombinieren Sie Globbing mit den Filtern
is_file/is_dirund lesen Sie die Treffer ein.
Häufig gestellte Fragen
Ist die Lektion „Globbing und Iteration“ kostenlos?
Ja — der vollständige Text von „Globbing und Iteration“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Python Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Python Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Globbing und Iteration“?
Dateien mit Glob-Mustern finden Du übst Python Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Python Academy zu starten?
Keine Vorkenntnisse erforderlich. Python Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.
Wie lange dauert die Lektion „Globbing und Iteration“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Python Academy-Lektion Code schreiben und ausführen?
Ja. Jede Python Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Das Path-Objekt
- Dateien lesen und schreiben
- Globbing und Iteration
- Pfade bearbeiten