0Pricing
Python Academy · Lektion

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.

  • iterdir listet direkte Inhalte auf.
  • glob sucht nach einem Muster (*, ?, [...]).
  • rglob durchsucht Verzeichnisse rekursiv.
  • Kombinieren Sie Globbing mit den Filtern is_file/is_dir und 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

  1. Das Path-Objekt
  2. Dateien lesen und schreiben
  3. Globbing und Iteration
  4. Pfade bearbeiten
← Zurück zu Python Academy