目次
1. Einführung
Python ist in Bezug auf Dateiverarbeitung äußerst flexibel und ermöglicht es, mit einfachem Code viele Aufgaben zu automatisieren. In diesem Artikel werden einige Methoden vorgestellt, mit denen man in Python „Dateinamen abrufen“ kann. Insbesondere wird der Fokus auf die Standardbibliothekenos
-Modul und pathlib
-Modul gelegt. Wenn Sie diesen Artikel lesen, erwerben Sie die Fähigkeit, Dateien in einem Verzeichnis effizient zu handhaben und Skripte zu erstellen, die Dateinamen ermitteln und filtern.2. Grundlagen zum Abrufen von Dateinamen in Python
Zunächst beginnen wir mit den grundlegenden Methoden zum Abrufen von Dateinamen in Python. Durch die Verwendung der Funktionos.path.basename()
können Sie den Dateinamen aus einem angegebenen Pfad erhalten.2.1 os.path.basename()
verwenden
os.path.basename()
ist eine Funktion, die nur den Dateinamen aus einem vollständigen Pfad extrahiert. Im folgenden Beispiel wird der Dateiname aus einem Dateipfad herausgezogen.import os
file_path = "/user/home/document/file.txt"
file_name = os.path.basename(file_path)
print(file_name) # Ergebnis: "file.txt"
2.2 os.path.dirname()
zum Abrufen des Verzeichnisnamens
Analog dazu können Sie mit os.path.dirname()
den Verzeichnisnamen aus einem Dateipfad erhalten. Dadurch ist es möglich, Dateinamen und Verzeichnisnamen zu trennen.dir_name = os.path.dirname(file_path)
print(dir_name) # Ergebnis: "/user/home/document"
3. Alle Dateinamen im Verzeichnis abrufen
Um alle Dateien und Ordner im Verzeichnis als Liste zu erhalten, istos.listdir()
praktisch. Außerdem ist os.walk()
nützlich, um Dateien in Unterverzeichnissen rekursiv zu erhalten.3.1 os.listdir()
zur Dateinamen‑Ermittlung verwenden
Mit os.listdir()
können Sie alle Dateien und Ordner im angegebenen Verzeichnis als Liste erhalten. Es ist ideal für einfache Verzeichnisoperationen.import os
dir_path = "/user/home/document"
files = os.listdir(dir_path)
print(files) # Ergebnis: ["file1.txt", "file2.txt", "subfolder"]
3.2 Dateinamen rekursiv mit os.walk()
erhalten
Wenn Sie Dateien einschließlich Unterverzeichnissen rekursiv erhalten möchten, ist die Verwendung von os.walk()
am effektivsten. Der folgende Code listet alle Dateien im angegebenen Verzeichnis und dessen Unterverzeichnissen auf.import os
dir_path = "/user/home/document"
for root, dirs, files in os.walk(dir_path):
for file in files:
print(os.path.join(root, file))
3.3 Hinzufügen von Fehlerbehandlung
Wenn das Verzeichnis nicht existiert oder keine Zugriffsrechte vorhanden sind, kann ein Fehler auftreten. Daher wird empfohlen, mittry-except
eine Ausnahmebehandlung hinzuzufügen.dir_path = "/invalid/path"
try:
files = os.listdir(dir_path)
print(files)
except FileNotFoundError:
print(f"{dir_path} wurde nicht gefunden.")
4. Abrufen und Ändern von Dateierweiterungen
Beim Abrufen von Dateinamen kann es erforderlich sein, die Dateierweiterung zu bearbeiten. Durch die Verwendung vonos.path.splitext()
ist es möglich, die Erweiterung zu trennen oder zu ändern.4.1 os.path.splitext()
zum Abrufen der Erweiterung
os.path.splitext()
ist eine Funktion, die Dateiname und Erweiterung getrennt zurückgibt.import os
file_path = "/user/home/document/file.txt"
file_name, file_ext = os.path.splitext(file_path)
print(file_name) # Ergebnis: "/user/home/document/file"
print(file_ext) # Ergebnis: ".txt"
4.2 Erweiterung ändern
Um die Erweiterung zu ändern, fügt man dem mitos.path.splitext()
erhaltenen Dateinamen die neue Erweiterung> hinzu.new_file_path = file_name + ".jpg"
print(new_file_path) # Ergebnis: "/user/home/document/file.jpg"
5. Anwendung der Dateinamenabfrage mit dem pathlib
-Modul
Seit Python 3.4 ist das pathlib
-Modul sehr praktisch für die Arbeit mit Dateipfaden. pathlib
ermöglicht die Pfadmanipulation auf objektorientierte Weise und ist dadurch intuitiver zu benutzen.5.1 Dateinamen mit Path.iterdir()
abrufen
Mit der iterdir()
-Methode von pathlib.Path()
können Sie die Dateinamen und Ordnernamen im angegebenen Verzeichnis abrufen.from pathlib import Path
dir_path = Path("/user/home/document")
for item in dir_path.iterdir():
print(item.name)
5.2 Rekursive Dateiabfrage: rglob()
Wenn Sie Dateinamen rekursiv einschließlich Unterverzeichnissen abrufen möchten, verwenden Sie die rglob()
-Methode. Sie kann auch als Alternative zu os.walk()
verwendet werden.for file in dir_path.rglob("*"):
print(file)
6. Filtern von Dateinamen
Wenn Sie nur Dateinamen erhalten möchten, die bestimmten Bedingungen entsprechen, können Sie mit demglob
-Modul oder der glob()
-Methode von pathlib
filtern.6.1 Filtern nach Dateierweiterung
Um nur Dateien mit einer bestimmten Erweiterung zu erhalten, verwenden Sie das Platzhalterzeichen*
.from pathlib import Path
dir_path = Path("/user/home/document")
for file in dir_path.glob("*.txt"):
print(file)
Dieser Code ruft nur die .txt
-Dateien im angegebenen Verzeichnis ab.7. Zusammenfassung
Es gibt viele Möglichkeiten, Dateinamen mit Python zu ermitteln, aber es ist wichtig, je nach Anwendungsfall die passende Methode zu wählen. Wenn Sie von den grundlegenden Operationen desos
-Moduls bis zu den fortgeschrittenen Funktionen von pathlib
alles nutzen, können Sie Dateien im Verzeichnis effizient verarbeiten. Im nächsten Beitrag werden wir Informationen zu fortgeschrittenen Dateioperationen wie Umbenennen, Verschieben und Löschen von Dateien bereitstellen.