Wie man Dateien und Verzeichnisse mit Python löscht
-
Löschen von Dateien mit dem
os
-Modul in Python -
Löschen von Dateien mit dem
pathlib
-Modul in Python - Löschen von Dateien mit Musterabgleich in Python
-
Verzeichnisse mit dem Python-Modul
os
löschen -
Verzeichnisse mit dem Python-Modul
pathlib
löschen -
Nicht-leere Verzeichnisse mit der Python-Methode
shutil.rmtree
löschen
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 is a backend software engineer at Matrice.ai.
LinkedInVerwandter Artikel - Python File
- So erhalten Sie alle Dateien eines Verzeichnisses
- Wie man in Python Text an eine Datei anhängt
- Wie man prüft, ob eine Datei in Python existiert
- Wie man Dateien mit einer bestimmten Endung nur in Python findet
- Wie man bestimmte Zeilen aus einer Datei in Python liest
- Dateiberechtigungen in Python ändern
Verwandter Artikel - Python Directory
- Python Get-Home-Verzeichnis
- Alle Dateien im Verzeichnis und Unterverzeichnissen in Python auflisten
- Behebung des Fehlers No Such File in Directory in Python
- Verzeichnis aus Pfad in Python extrahieren
- Ausführen eines Befehls für jede Datei in einem Ordner in Python
- Zählen Sie die Anzahl der Dateien in einem Verzeichnis in Python