Wie man Dateien mit einer bestimmten Endung nur in Python findet
-
glob.glob
Methode, um Dateien mit einer bestimmten Erweiterung zu finden -
os.listdir()
Methode zum Finden von Dateien mit einer bestimmten Endung -
pathlib.glob
Methode, um Dateien mit bestimmten Erweiterungen zu finden - Dateien mit einer bestimmten Erweiterung im Verzeichnis und seinen Unterverzeichnissen in Python finden
-
pathlib
Modul sucht rekursiv nach Dateien
Dieser Artikel stellt verschiedene Methoden vor, wie man Dateien mit einer bestimmten Erweiterung nur in Python finden kann.
glob.glob
Methode, um Dateien mit einer bestimmten Erweiterung zu finden
Wir könnten das Modul glob.glob
verwenden, um die Dateien mit einer bestimmten Erweiterung nur in Python zu finden.
import glob
targetPattern = r"C:\Test\*.txt"
glob.glob(targetPattern)
Die obigen Codes demonstrieren, wie man die Dateien mit der Erweiterung txt
im Verzeichnis C:\Test
findet.
os.listdir()
Methode zum Finden von Dateien mit einer bestimmten Endung
Die Funktion os.listdir()
listet alle Dateien im angegebenen Verzeichnis auf, ohne die Dateipfadinformation. Sie können die Dateien mit der spezifischen Erweiterung mit der Funktion str.endswith()
extrahieren.
>>> import os
>>> fileDir = r"C:\Test"
>>> fileExt = r".txt"
>>> [_ for _ in os.listdir(fileDir) if _.endswith(fileExt)]
['test.txt', 'test1.txt']
Sie müssen den vollständigen Pfad mit der Funktion os.path.join()
konstruieren.
>>> import os
>>> fileDir = r"C:\Test"
>>> fileExt = r".txt"
>>> [os.path.join(fileDir, _) for _ in os.listdir(fileDir) if _.endswith(fileExt)]
['C:\\Test\\test.txt', 'C:\\Test\\test1.txt']
pathlib.glob
Methode, um Dateien mit bestimmten Erweiterungen zu finden
Das pathlib
Modul wird in Python 3.4 eingeführt, das objektorientierte Dateisystempfade anbietet. Es bietet zwei Stile: Windows-Pfade in Windows-Betriebssystemen und POSIX-Pfade in Unix-ähnlichen Systemen.
>>> import pathlib
>>> fileDir = r"C:\Test"
>>> fileExt = r"*.txt"
>>> list(pathlib.Path(fileDir).glob(fileExt))
[WindowsPath('C:/Test/test.txt'), WindowsPath('C:/Test/test1.txt')]
Das Ergebnis wird mit WindowsPath
dargestellt, und Sie können das Ergebnis in die String-Darstellung konvertieren, indem Sie str()
hinzufügen, wie
>>> [str(_) for _ in pathlib.Path(fileDir).glob(fileExt)]
['C:\\Test\\test.txt', 'C:\\Test\\test.txt']
Dateien mit einer bestimmten Erweiterung im Verzeichnis und seinen Unterverzeichnissen in Python finden
Das Muster C:\Test\*.txt
durchsucht nur die txt
Dateien im Verzeichnis C:\Test
, aber nicht in seinen Unterverzeichnissen. Wenn Sie auch die txt
Dateien in den Unterverzeichnissen erhalten wollen, können Sie das Muster ein wenig modifizieren.
import glob
targetPattern = r"C:\Test\**\*.txt"
glob.glob(targetPattern)
Die Platzhalter **
zwischen Test
und \*.txt
bedeuten, dass es die txt
Dateien sowohl im Verzeichnis als auch in seinen Unterverzeichnissen finden sollte.
pathlib
Modul sucht rekursiv nach Dateien
Ähnlich wie das Hinzufügen von **
in glob.glob
, um Dateien rekursiv zu suchen, können Sie auch **
in der pathlib.Path.glob
Methode hinzufügen, um die Dateien mit einer bestimmten Endung rekursiv zu finden.
>>> import pathlib
>>> fileDir = r"C:\Test"
>>> fileExt = r"**\*.txt"
>>> list(pathlib.Path(fileDir).glob(fileExt))
[WindowsPath('C:/Test/test.txt'), WindowsPath('C:/Test/test1.txt'), WindowsPath('C:/Test/sub/test1.txt')]
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 Facebook