So erhalten Sie alle Dateien eines Verzeichnisses
-
os.listdir
um alle Dateien in einem Verzeichnis in Python zu erhalten -
os.walk
um alle Dateien in einem Verzeichnis in Python zu erhalten -
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,
- Python-Version - Python 3
- 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.
import glob
dirPathPattern = r"C:\git\DelftStack\content\*.*"
result = glog.glob(dirPathPattern)
print(result)
glob.glob
gibt den vollen Pfad der übereinstimmenden Dateien zurück, wie C:\git\DelftStack\content\about.rst
.
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.
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn FacebookVerwandter Artikel - Python File
- Wie man in Python Text an eine Datei anhängt
- Wie man prüft, ob eine Datei in Python existiert
- Wie man Dateien mit einer bestimmten Endung nur in Python findet
- Wie man bestimmte Zeilen aus einer Datei in Python liest
- Dateiberechtigungen in Python ändern