Datei- und Verzeichnisexistenz in Python prüfen – Ein praktischer Leitfaden
Datei- und Verzeichnisexistenz in Python prüfen – Ein praktischer Leitfaden
Warum die Prüfung der Pfadexistenz wichtig ist
Beim Erstellen robuster Python-Anwendungen müssen Sie oft bestätigen, ob eine Datei oder ein Verzeichnis vorhanden ist, bevor Sie Operationen wie Lesen, Schreiben oder Löschen durchführen. Das Überspringen dieser Prüfung kann zu Laufzeitfehlern und unerwarteten Abstürzen führen. Dieser Leitfaden deckt die zuverlässigsten Methoden ab, basierend auf der offiziellen Python-Dokumentation und Best-Practice-Mustern.
os.path.exists() verwenden
Das os.path-Modul, Teil der Standardbibliothek, bietet eine unkomplizierte exists()-Funktion, die True zurückgibt, wenn ein Pfad auf eine existierende Datei oder ein Verzeichnis verweist. Es ist die am häufigsten verwendete Methode für einfache Existenzprüfungen.
import os
from os import path
print(path.exists('guru99.txt')) # True, wenn die Datei existiert
print(path.exists('meinVerzeichnis')) # True, wenn das Verzeichnis existiert
Typischer Anwendungsfall
def element_pruefen(pfad_str):
if path.exists(pfad_str):
print(f"{pfad_str} existiert.")
else:
print(f"{pfad_str} existiert nicht.")
Dateien von Verzeichnissen unterscheiden
Um den spezifischen Typ eines existierenden Pfads zu identifizieren, bietet Python zwei komplementäre Funktionen: isfile() und isdir(). Sie geben True nur zurück, wenn der Pfad eine reguläre Datei bzw. ein Verzeichnis ist.
print(path.isfile('guru99.txt')) # True, wenn es eine Datei ist
print(path.isdir('meinVerzeichnis')) # True, wenn es ein Verzeichnis ist
pathlib nutzen – Der moderne Ansatz
In Python 3.4 eingeführt, bietet das pathlib-Modul eine objektorientierte Schnittstelle für Dateisystempfade. Seine Path-Objekte bieten Methoden wie exists(), is_file() und is_dir(), die viele Entwickler als lesbarer empfinden.
from pathlib import Path
datei_pfad = Path('guru99.txt')
print(datei_pfad.exists()) # True, wenn Datei oder Verzeichnis existiert
print(datei_pfad.is_file()) # True, wenn es eine reguläre Datei ist
print(datei_pfad.is_dir()) # True, wenn es ein Verzeichnis ist
Empfohlene Best Practices
- Importieren Sie das Modul einmal; vermeiden Sie wiederholte Importe.
- Verwenden Sie
Path-Objekte für neue Projekte, um von klarerer Syntax zu profitieren. - Bei Schreiboperationen zuerst Existenz prüfen, um Überschreiben zu verhindern oder Verzeichnisse mit
Path.mkdir()zu erstellen. - Behandeln Sie
FileNotFoundError-Exceptions, wenn auf Pfade zugegriffen wird, die sich zwischen Prüfung und Operation ändern könnten.
Schnelle Referenz
| Funktion | Gibt True zurück, wenn |
|---|---|
os.path.exists() | Pfad oder Verzeichnis existiert |
os.path.isfile() | Pfad ist eine existierende reguläre Datei |
os.path.isdir() | Pfad ist ein existierendes Verzeichnis |
pathlib.Path.exists() | Pfad oder Verzeichnis existiert (Python 3.4+) |
pathlib.Path.is_file() | Pfad ist eine existierende reguläre Datei |
pathlib.Path.is_dir() | Pfad ist ein existierendes Verzeichnis |
Für detaillierte Dokumentation verweisen Sie auf die offiziellen os.path und pathlib Module.
Python
- Python File I/O: Dateioperationen, Lesen, Schreiben und Verwaltung meistern
- Verzeichnis- und Dateioperationen in Python meistern
- Aktuelles Datum und Uhrzeit in Python abrufen: Praktischer Leitfaden
- Feuchtigkeitssensor verifizieren und kalibrieren für präzise Messungen
- Python print()-Funktion: Praktischer Leitfaden mit Beispielen
- Python Print ohne Newline: Den end-Parameter & andere Techniken meistern
- Python JSON: Encoding, Decoding und Datei-Handling – Ein praktischer Leitfaden
- Durchschnitt berechnen in Python: Praktischer Leitfaden
- Umfassender Leitfaden zur Einrichtung Ihrer Python-Entwicklungsumgebung
- Python Datei-E/A: Eingabe- und Ausgabeoperationen meistern