Wie man Dateien und Verzeichnisse mit Python löscht

Suraj Joshi 30 Januar 2023
  1. Löschen von Dateien mit dem os-Modul in Python
  2. Löschen von Dateien mit dem pathlib-Modul in Python
  3. Löschen von Dateien mit Musterabgleich in Python
  4. Verzeichnisse mit dem Python-Modul os löschen
  5. Verzeichnisse mit dem Python-Modul pathlib löschen
  6. Nicht-leere Verzeichnisse mit der Python-Methode shutil.rmtree löschen
Wie man Dateien und Verzeichnisse mit Python löscht

Dieser Artikel stellt vor, wie man Dateien und Verzeichnisse mit in Python eingebauten Paketen wie os, pathlib und shutil löschen kann.

Löschen von Dateien mit dem os-Modul in Python

os ist ein eingebautes Paket, das sowohl in Python2 als auch in Python3 verfügbar ist.

Wir können remove() und unlink() aus dem os-Modul verwenden, um Dateien mit Python zu löschen. Beide Funktionen sind in ihrer Wirkung ähnlich. Beide nehmen den Pfad der zu löschenden Datei als Argument.

import os

os.remove("test_dir/main.py")

Sie löscht die Datei namens main.py, die sich innerhalb von test_dir befindet. Da wir hier den relativen Pfad verwenden, muß sich test_dir im selben Wurzelverzeichnis wie unser Programm Python befinden. Wir können auch den absoluten Dateipfad verwenden.

import os

os.unlink("test_dir/main.py")

Er löscht auch die Datei namens main.py, die sich innerhalb von test_dir befindet.

Beide Funktionen können nur Dateien löschen. Wenn wir den Pfad des zu löschenden Verzeichnisses angeben, erhalten wir den Fehler IsADirectoryError.

In ähnlicher Weise erhalten wir FileNotFoundError, wenn die Datei nicht im angegebenen Pfad vorhanden ist.

Wenn wir nicht die Erlaubnis haben, die Datei zu löschen, erhalten wir den Fehler PermissionError.

Um diese Fehler beim Löschen der Datei zu beheben, sollten wir die Ausnahmebehandlung verwenden.

import os

try:
    os.remove("test_dir/main.py")
except OSError as e:
    print(f"Error:{ e.strerror}")

Ausgabe:

Error:No such file or directory

Wenn keine solche Datei vorhanden ist, erhalten wir den Fehler in der Ausgabe ausgegeben, anstatt das gesamte Programm zum Absturz zu bringen.

Löschen von Dateien mit dem pathlib-Modul in Python

Um Dateien mit Hilfe des pathlib-Moduls zu entfernen, machen wir zunächst ein Objekt aus dem Path-Objekt, das im pathlib-Modul definiert ist. Dann verwenden wir die Methode unlink(), um die Datei zu löschen.

from pathlib import Path

filePath = Path("test_dir/main.py")

try:
    filePath.unlink()
except OSError as e:
    print(f"Error:{ e.strerror}")

Hier instantiieren wir das FilePath-Objekt aus der Path-Klasse mit dem Ort der zu löschenden Datei.

Das Modul pathlib ist nur in Python 3.4 und höher verfügbar. Für Python 2 müssen wir das Modul mit pip installieren.

Löschen von Dateien mit Musterabgleich in Python

Wir können das Modul glob verwenden, um Muster in Dateien abzugleichen, und nachdem wir alle Dateien gesammelt haben, die mit dem Muster übereinstimmen, können wir sie alle mit einer der oben angegebenen Methoden löschen.

import os
import glob

py_files = glob.glob("test_dir/*.py")

for py_file in py_files:
    try:
        os.remove(py_file)
    except OSError as e:
        print(f"Error:{ e.strerror}")

Dies löscht alle Dateien im Verzeichnis test_dir mit der Erweiterung .py.

Verzeichnisse mit dem Python-Modul os löschen

Um die Verzeichnisse mit Python zu löschen, können wir die Verzeichnisse os, pathlib und shutlib verwenden. os und pathlib können nur leere Verzeichnisse löschen, während shutlib auch nicht leere Verzeichnisse entfernen kann.

import os

dirPath = "test_dir"

try:
    os.rmdir(dirPath)
except OSError as e:
    print(f"Error:{ e.strerror}")

Sie löscht das leere Verzeichnis test_dir in unserem aktuellen Arbeitsverzeichnis.

Verzeichnisse mit dem Python-Modul pathlib löschen

Wenn das Verzeichnis nicht leer ist, kann das Verzeichnis mit dieser Methode nicht entfernt werden, wir erhalten eine Ausgabe des Programms mit der Meldung Fehler: Verzeichnis nicht leer.

Wir können auch das pathlib-Modul benutzen, um nicht leere Verzeichnisse zu entfernen.

from pathlib import Path

dirPath = Path("test_dir")

try:
    dirPath.rmdir()
except OSError as e:
    print(f"Error:{ e.strerror}")

Es löscht auch das leere Verzeichnis test_dir in unserem aktuellen Arbeitsverzeichnis.

Nicht-leere Verzeichnisse mit der Python-Methode shutil.rmtree löschen

Um nicht leere Verzeichnisse mit Python zu löschen, verwenden wir die rmtree-Methode aus dem shutil-Modul.

import shutil

dirPath = "test_dir"

try:
    shutil.rmtree(dirPath)
except OSError as e:
    print(f"Error:{ e.strerror}")

Sie löscht das Verzeichnis test_dir in unserem aktuellen Arbeitsverzeichnis und seinen gesamten Inhalt.

Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

Verwandter Artikel - Python File

Verwandter Artikel - Python Directory