Dieses Tutorial bietet eine umfassende Anleitung zur essentiellen Datei- und Verzeichnismanipulation in Python, wobei die Leistungsfähigkeit der Module os
und shutil
genutzt wird. Wir behandeln das Erstellen, Zugreifen, Auflisten, Ändern und Entfernen von Verzeichnissen und statten Sie mit den Fähigkeiten aus, Ihr Dateisystem effektiv innerhalb Ihrer Python-Skripte zu verwalten.
Inhaltsverzeichnis
- Verzeichnisse erstellen
- Aktuelles Verzeichnis abrufen
- Verzeichnisinhalt auflisten
- Arbeitsverzeichnis wechseln
- Verzeichnisse umbenennen und entfernen
- Pfadmanipulationstechniken
- Robuste Fehlerbehandlung
1. Verzeichnisse erstellen
Das Modul os
bietet Funktionen zur Interaktion mit dem Betriebssystem. os.mkdir()
erstellt ein einzelnes Verzeichnis, während os.makedirs()
die Erstellung verschachtelter Verzeichnisse ermöglicht. Der Parameter exist_ok
verhindert Fehler, wenn das Verzeichnis bereits existiert.
import os
# Ein einzelnes Verzeichnis erstellen
os.mkdir("my_new_directory")
# Verschachtelte Verzeichnisse erstellen
os.makedirs("nested/directories/example", exist_ok=True)
print("Verzeichnisse erfolgreich erstellt!")
2. Aktuelles Verzeichnis abrufen
Verwenden Sie os.getcwd()
, um das aktuelle Arbeitsverzeichnis abzurufen.
import os
aktuelles_verzeichnis = os.getcwd()
print(f"Aktuelles Arbeitsverzeichnis: {aktuelles_verzeichnis}")
3. Verzeichnisinhalt auflisten
os.listdir()
listet alle Einträge (Dateien und Verzeichnisse) innerhalb eines Pfades auf. Kombinieren Sie es mit os.path.isdir()
, um nur nach Verzeichnissen zu filtern.
import os
verzeichnispfad = "."
alle_einträge = os.listdir(verzeichnispfad)
verzeichnisse = [eintrag for eintrag in alle_einträge if os.path.isdir(os.path.join(verzeichnispfad, eintrag))]
print("Verzeichnisse:")
for verzeichnis in verzeichnisse:
print(verzeichnis)
4. Arbeitsverzeichnis wechseln
os.chdir()
ändert das aktuelle Arbeitsverzeichnis. Integrieren Sie immer eine Fehlerbehandlung (z. B. mit try-except
-Blöcken), um potenzielle Probleme wie nicht vorhandene Verzeichnisse zu behandeln.
import os
try:
os.chdir("my_new_directory")
print(f"Aktuelles Arbeitsverzeichnis geändert in: {os.getcwd()}")
os.chdir("..") #Gehe eine Ebene nach oben
print(f"Aktuelles Arbeitsverzeichnis zurückgesetzt auf: {os.getcwd()}")
except FileNotFoundError:
print("Fehler: Verzeichnis nicht gefunden.")
except OSError as e:
print(f"Ein OS-Fehler ist aufgetreten: {e}")
5. Verzeichnisse umbenennen und entfernen
os.rename()
benennt Verzeichnisse um. os.rmdir()
entfernt leere Verzeichnisse. Für nicht leere Verzeichnisse verwenden Sie shutil.rmtree()
mit äußerster Vorsicht, da es rekursiv alles innerhalb des Zielverzeichnisses löscht. Sichern Sie wichtige Daten immer, bevor Sie diese Funktion verwenden.
import os
import shutil
# Ein Verzeichnis umbenennen
os.rename("my_new_directory", "renamed_directory")
# Ein leeres Verzeichnis entfernen
os.rmdir("empty_directory") #Benötigt ein leeres Verzeichnis namens "empty_directory"
# Ein nicht leeres Verzeichnis entfernen (mit äußerster Vorsicht verwenden!)
shutil.rmtree("non_empty_directory") #Benötigt ein Verzeichnis namens "non_empty_directory" - dies löscht alles darin.
print("Verzeichnisoperationen abgeschlossen.")
6. Pfadmanipulationstechniken
Das Modul os.path
bietet Werkzeuge für die sichere und portable Pfadmanipulation, die entscheidend ist, um plattformspezifische Probleme zu vermeiden.
import os
# Pfade sicher verbinden
pfad = os.path.join("pfad", "zu", "meiner", "datei.txt")
# Dateinamen und Erweiterung erhalten
dateiname, dateierweiterung = os.path.splitext(pfad)
# Prüfen, ob ein Pfad existiert
if os.path.exists(pfad):
print("Pfad existiert")
7. Robuste Fehlerbehandlung
Rechnen Sie immer mit potenziellen Fehlern (z. B. FileNotFoundError
, PermissionError
, OSError
) und implementieren Sie entsprechende Fehlerbehandlungsmechanismen, um Ihren Code robust zu machen und unerwartete Abstürze zu verhindern.