So erhalten Sie alle Dateien eines Verzeichnisses

  1. os.listdir um alle Dateien in einem Verzeichnis in Python zu erhalten
  2. os.walk um alle Dateien in einem Verzeichnis in Python zu erhalten
  3. glob.glob um alle Dateien in einem Verzeichnis in Python zu erhalten

Sie könnten mindestens 3 Methoden haben, um alle Dateien eines Verzeichnisses in Python aufzulisten, indem Sie die Python-Funktionen os.listdir, os.walk und glob.glob verwenden.

Im Folgenden wird die Vermutung dieses Tutorials dargelegt,

  1. Python-Version - Python 3
  2. Der Pfadname ist dirPath und er existiert im System, daher brauchen wir die Existenz des Verzeichnisses nicht zu überprüfen.

os.listdir um alle Dateien in einem Verzeichnis in Python zu erhalten

os.listdir listet alle Dateien und Ordner im Verzeichnis auf, daher benötigt es zusätzlichen Code, um Dateien aus dem Ergebnis zu filtern.

import os
dirPath = r"C:\git\DelftStack\content"
result = [f for f in os.listdir(dirPath) if os.path.isfile(os.path.join(dirPath, f))]
print(result)

os.listdir gibt nur den relativen Pfad der Dateien oder Ordner mit Bezug auf dirPath zurück, und die Funktion os.path.isfile benötigt den vollständigen Pfad, um zu prüfen, ob es sich um eine Datei handelt oder nicht. Daher müssen wir os.path.join benutzen, um den dirPath und die Ergebnisse von os.listdir zu kombinieren, um den vollständigen Pfad von entweder Dateien oder Pfaden zu erhalten.

os.walk um alle Dateien in einem Verzeichnis in Python zu erhalten

os.walk generates the file names in the given directory by traversing the tree top-down (per default) or bottom-up. It yields a 3-tuple (dirpath, dirname, filenames) each time it walks to the directory in the tree (including top itself).

Alle Dateien sind im Tupel für die erste Ausbeute von os.walk enthalten, daher ist ein pythonischer Weg

import os
dirPath = r"C:\git\DelftStack\content"
result = next(os.walk(dirPath))[2]
print(result)

glob.glob um alle Dateien in einem Verzeichnis in Python zu erhalten

Das glob Modul findet alle Pfadnamen, die dem angegebenen spezifischen Muster entsprechen, gemäß den in der Unix-Shell verwendeten Regeln. glob.glob gibt die Liste der Pfadnamen zurück, die dem angegebenen Pfadnamensmuster entsprechen. Der Dateipfad hat das Muster *.*, das ist das, was an glob.glob als Eingabeargument übergeben wird.

glob importieren
dirPathPattern = r "C:\git\DelftStack\content\*".
result = glog.glob(dirPfadMuster)
Druck(ergebnis)

glob.glob gibt den vollen Pfad der übereinstimmenden Dateien zurück, wie C:\git\DelftStack\content\about.rst.

Warnung

Das Ergebnis der glob.glob Methode, wie hier gezeigt, kann nicht garantieren, dass es sich um reine Dateien handelt, da nur geprüft wird, ob der Pfadname mit dem Muster übereinstimmt, nicht aber, ob es sich um eine Datei oder ein Verzeichnis handelt.

Wenn zum Beispiel ein Verzeichnis das Namensmuster wie test.test hat, dann wird dieses Verzeichnis auch in das Ergebnis einbezogen.

Wenn Sie sicherstellen müssen, dass die Ausgabe nur Dateien enthält, müssen Sie sie mit der Funktion os.path.isfile überprüfen.

Verwandter Artikel - Python File

  • Binärdatei lesen in Python
  • Überschreiben einer Datei in Python
  • Verwandter Artikel - Python Dictionary

  • Python Get Dateiname ohne Erweiterung aus Pfad
  • Anzahl der Zeilen in einer Datei in Python ermitteln