Python: Ordner erstellen & löschen mit os und pathlib

1. Grundlegende Methode zum Erstellen von Ordnern in Python

Python gibt es eine einfache Methode, Ordner mit der Standardbibliothek zu erstellen. Hauptsächlich wird das os-Modul verwendet. In diesem Abschnitt wird die Ordnererstellung mit dem os-Modul ausführlich erklärt.

Methode zum Erstellen von Ordnern in Python: os-Modul

os-Modul zu verwenden, können Sie innerhalb eines Programms Ordner erstellen. Das ist nützlich, z. B. zum Organisieren von Daten oder zum Erstellen von Verzeichnissen zum Speichern von Protokollen. Die grundlegende Methode zum Erstellen von Ordnern ist wie folgt.
import os

# Pfad des zu erstellenden Ordners angeben
path = 'example_folder'

# Ordner erstellen
os.mkdir(path)
In diesem Code wird die Funktion os.mkdir() verwendet, um den neuen Ordner „example_folder“ zu erstellen. Allerdings löst diese Funktion einen FileExistsError aus, wenn der Ordner bereits existiert.

Erstellen von mehrstufigen Ordnern: os.makedirs()

Wenn Sie nicht nur einen einzelnen Ordner, sondern mehrere Ebenen von Verzeichnissen auf einmal erstellen möchten, verwenden Sie die Funktion os.makedirs().
import os

# Pfad für mehrere Ebenen angeben
path = 'example_folder/subfolder'

# Ordner erstellen, selbst wenn das übergeordnete Verzeichnis nicht existiert
os.makedirs(path)
Auf diese Weise können Sie mit os.makedirs() auch nicht vorhandene übergeordnete Verzeichnisse des angegebenen Pfads gleichzeitig erstellen. Das ermöglicht das bequeme Erstellen einer Ordnerstruktur in einem Schritt.

Fehlerbehandlung: Verwendung von exist_ok=True

Wenn ein Ordner bereits existiert und Sie keinen Fehler auslösen, sondern die Verarbeitung fortsetzen möchten, verwenden Sie die Option exist_ok=True. Wie im folgenden Beispiel eingestellt, tritt kein Fehler auf, selbst wenn der Ordner bereits existiert.
import os

path = 'example_folder/subfolder'

# Fehler ignorieren, selbst wenn der Ordner bereits existiert
os.makedirs(path, exist_ok=True)
Dadurch können Sie robusten Code schreiben, der bei jeder Ausführung des Programms versucht, denselben Ordner zu erstellen, ohne dass ein Fehler auftritt.

2. Ordnererstellung mit dem Pathlib-Modul

Seit Python 3.4 ist das pathlib-Modul zur Standardbibliothek hinzugefügt worden. Dieses Modul ermöglicht objektorientierte Pfadoperationen und erlaubt eine intuitive Erstellung von Ordnern. Im Folgenden wird erklärt, wie man mit dem pathlib-Modul Ordner erstellt.

Verwendung des Pathlib-Moduls

Durch die Verwendung von pathlib.Path() kann ein Verzeichnis erstellt werden. Wie beim os-Modul kann durch Angabe von exist_ok=True ein Fehler vermieden werden, selbst wenn der Ordner bereits existiert.
from pathlib import Path

# Pfad des zu erstellenden Ordners angeben
path = Path('example_folder/subfolder')

# Ordner erstellen
path.mkdir(parents=True, exist_ok=True)
In diesem Code sorgt die Angabe von parents=True dafür, dass auch fehlende übergeordnete Verzeichnisse gleichzeitig erstellt werden. Dadurch wird ein Verhalten wie bei os.makedirs() erreicht.

Vorteile des Pathlib-Moduls

Ein Hauptmerkmal des pathlib-Moduls ist, dass objektorientierte Operationen möglich sind. Mit dem Path-Objekt können neben der Ordnererstellung auch Pfadverkettungen und Dateioperationen intuitiv durchgeführt werden. Dadurch verbessern sich die Lesbarkeit und Wartbarkeit des Codes.
年収訴求

3. Fehlerbehandlung beim Erstellen von Ordnern

Beim Erstellen von Ordnern können verschiedene Fehler auftreten. Zum Beispiel, wenn Berechtigungen fehlen oder der angegebene Pfad ungültig ist. In diesem Abschnitt wird erklärt, wie man Fehlerbehandlung implementiert.

Umgang mit Berechtigungsfehlern und ungültigen Pfaden

Bei der Ordnererstellung mit os.makedirs() oder pathlib.Path().mkdir() können allgemeine Fehler wie PermissionError und FileNotFoundError auftreten. Durch die angemessene Behandlung dieser Fehler kann ein robusteres Programm erstellt werden. Im Folgenden ein Beispiel für Fehlerbehandlung.
import os

path = 'example_folder/subfolder'

try:
    os.makedirs(path, exist_ok=True)
    print(f'Ordner "{path}" wurde erstellt.')
except PermissionError:
    print('Keine Berechtigung zum Erstellen des Ordners.')
except FileNotFoundError:
    print('Der angegebene Pfad ist ungültig.')
except Exception as e:
    print(f'Ein unerwarteter Fehler ist aufgetreten: {e}')
Dieser Code zeigt für allgemeine Fehler jeweils eine Behandlung und berücksichtigt auch unerwartete Fehler. Dadurch wird das Programm nicht unterbrochen und Fehler werden angemessen verarbeitet.

Fortgeschrittene Fehlerbehandlung

In Situationen, in denen das Erstellen von Ordnern fehlschlagen kann, sollte man in Erwägung ziehen, den Fehlerinhalt zu protokollieren oder den Benutzer zu benachrichtigen. Besonders in großen Anwendungen hat die Fehlerbehandlung einen großen Einfluss auf die Benutzererfahrung, sodass eine umfassende Behandlung erforderlich ist.

4. Methoden zum Löschen von Ordnern

Es kommt nicht nur vor, Ordner zu erstellen, sondern häufig müssen auch nicht mehr benötigte Ordner gelöscht werden. In Python kann man mit den Standardbibliotheksmodulen os und shutil Ordner löschen. Im Folgenden werden die konkreten Methoden erläutert.

Ordnerlöschung mit os.rmdir()

Das os-Modul enthält eine Funktion namens rmdir(), mit der Ordner gelöscht werden können. Allerdings muss der zu löschende Ordner leer sein.
import os

# Pfad des zu löschenden Ordners angeben
path = 'example_folder/subfolder'

# Ordner löschen
os.rmdir(path)
Dieser Code funktioniert nur, wenn der angegebene Ordner leer ist. Befinden sich Dateien oder andere Verzeichnisse im Ordner, wird ein OSError ausgelöst.

Rekursives Löschen von Ordnern mit shutil.rmtree()

Wenn sich Dateien oder weitere Unterordner im Ordner befinden, kann man mit der rmtree()-Funktion des shutil-Moduls den Ordner und seinen Inhalt rekursiv löschen.
import shutil

# Pfad des zu löschenden Ordners angeben
path = 'example_folder/subfolder'

# Ordner und dessen Inhalt löschen
shutil.rmtree(path)
Diese Methode ermöglicht das Löschen von Ordnern, selbst wenn das Verzeichnis nicht leer ist, und ist daher praktisch, wenn man einen gesamten Verzeichnisbaum entfernen möchte. Allerdings können gelöschte Dateien und Ordner nicht wiederhergestellt werden, sodass man vorsichtig vorgehen sollte.

Fehlerbehandlung

Auch beim Löschen von Ordnern ist ein Fehlerbehandlung wichtig. Beispielsweise treten Fehler auf, wenn man keine Berechtigung zum Löschen des Ordners hat oder der angegebene Pfad ungültig ist. Im Folgenden ein Beispielcode mit Fehlerbehandlung.
import shutil

path = 'example_folder/subfolder'

try:
    shutil.rmtree(path)
    print(f'Ordner "{path}" wurde gelöscht.')
except PermissionError:
    print('Keine Berechtigung zum Löschen des Ordners.')
except FileNotFoundError:
    print('Der angegebene Ordner wurde nicht gefunden.')
except Exception as e:
    print(f'Ein unerwarteter Fehler ist aufgetreten: {e}')
Dieser Code behandelt Fehler, die beim Löschen auftreten, und reagiert flexibel auf unerwartete Fehler.
RUNTEQ(ランテック)|超実戦型エンジニア育成スクール

5. Praktische Anwendungsfälle

Hier werden Anwendungsfälle vorgestellt, die das Kombinieren von Ordnererstellung und -löschung nutzen und in realen Projekten oder Datenverarbeitungen nützlich sind. Insbesondere wird ein Szenario angenommen, bei dem Jahres- und Monatsdaten in Ordnern organisiert werden.

Ordnererstellung nach Jahr und Monat

Zum Beispiel kann man ein Skript erstellen, das automatisch Ordner anlegt, wenn Daten nach Jahr oder Monat organisiert werden sollen.
import os
from datetime import datetime

# Aktuelles Jahr und Monat ermitteln
current_year = datetime.now().year
current_month = datetime.now().month

# Pfad des Ordners festlegen
folder_path = f'data/{current_year}/{current_month}'

# Ordner erstellen
os.makedirs(folder_path, exist_ok=True)
print(f'Ordner "{folder_path}" wurde erstellt.')
Dieses Skript erstellt automatisch Ordner basierend auf dem aktuellen Jahr und Monat und hilft dabei, Daten effizient zu organisieren.

Massenlöschung von Ordnern

Auch wenn man basierend auf bestimmten Bedingungen unnötige Ordner in einem Schritt löschen möchte, kann man mit Python die Verarbeitung effizient durchführen. Zum Beispiel kann man ein Skript erstellen, das alte Datenordner löscht, die länger als ein bestimmter Zeitraum existieren.
import shutil
import os
from datetime import datetime, timedelta

# Datum von vor 30 Tagen ermitteln
threshold_date = datetime.now() - timedelta(days=30)

# Basis-Pfad der zu löschenden Ordner
base_path = 'data/'

# Ordner prüfen und alte Ordner löschen
for folder_name in os.listdir(base_path):
    folder_path = os.path.join(base_path, folder_name)
    if os.path.isdir(folder_path):
        folder_date = datetime.strptime(folder_name, '%Y-%m-%d')
        if folder_date < threshold_date:
            shutil.rmtree(folder_path)
            print(f'Alter Ordner "{folder_path}" wurde gelöscht.')
In solchen Anwendungsfällen kann man durch die Automatisierung der Ordnerverwaltung und -organisation mit einem Programm manuelle Eingriffe vermeiden.

6. Zusammenfassung

In diesem Artikel wurde erklärt, wie man mit Python Ordner erstellt und löscht. Das os-Modul und das pathlib-Modul werden für grundlegende Operationen verwendet, und es wurden Fehlerbehandlung beim Ordnererstellen sowie praktische Anwendungs breit vorgestellt. Durch die Nutzung dieses Wissens können Sie Programme erstellen, die Daten und Dateien effizient verwalten. Als nächster Schritt sollten Sie neben dem Erstellen und Löschen von Ordnern auch Techniken zur Dateiverwaltung, Kompression und weitere fortgeschrittene Datenmanagement‑Methoden erlernen.