So löschen Sie eine Datei oder einen Ordner
Wie lösche ich eine Datei oder einen Ordner in Python?
InformationsquelleAutor der Frage Zygimantas | 2011-08-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie lösche ich eine Datei oder einen Ordner in Python?
InformationsquelleAutor der Frage Zygimantas | 2011-08-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
os.remove()
wird eine Datei zu entfernen.os.rmdir()
zu entfernen wird ein leeres Verzeichnis.shutil.rmtree()
löscht ein Verzeichnis und alle seine Inhalte.InformationsquelleAutor der Antwort RichieHindle
Python-syntax um eine Datei zu löschen
Oder
Best practice:
ein.
os.path.isfile("/path/to/file")
b. Verwenden
exception handling.
BEISPIEL für
os.path.isfile
Exception-Handling
JEWEILIGEN AUSGANG
Python-syntax, um einen Ordner zu löschen
Beispiel für
shutil.rmtree()
InformationsquelleAutor der Antwort anand tripathi
Verwenden
Ist(siehe vollständige Dokumentation auf shutil) und/oder
und
(Komplette Dokumentation auf os.)
InformationsquelleAutor der Antwort Mihai Maruseac
Für das löschen von Dateien:
Können Sie
unlink
oderentfernen
.Oder
Diese Funktionen entfernt (löscht) den Pfad der Datei. Falls Pfad ein Verzeichnis ist,
OSError
ausgelöst.In Python 2, wenn der Pfad nicht vorhanden ist, wird
OSError
mit [Errno 2] (ENOENT
) angehoben wird. In Python 3,FileNotFoundError
mit [Errno 2] (ENOENT
) angehoben wird. In Python 3, daFileNotFoundError
ist eine Unterklasse vonOSError
fangen die letzteren fangen die ehemaligen.Für das löschen von Ordnern:
rmdir
Entfernen (löschen), den Verzeichnis-Pfad. Funktioniert nur, wenn das Verzeichnis leer ist, sonst, OSError ausgelöst.Um zu entfernen ganze directory-Bäume,
shutil.rmtree()
verwendet werden kann.shutil.rmtree
Löschen eines gesamten directory-Baum. Pfad muss auf ein Verzeichnis zeigen, (aber nicht eine symbolische Verknüpfung auf ein Verzeichnis).Wenn ignore_errors wahr ist, Fehler, die aus gescheiterten Abschiebungen werden ignoriert und wenn der Wert false oder nicht angegeben, wie Fehler behandelt werden, durch den Aufruf einer handler angegeben onerror-oder, wenn das weggelassen wird, ist Sie eine Ausnahme auslösen.
Siehe auch:
os.removedirs(name)
Entfernen Verzeichnisse rekursiv. Funktioniert wie rmdir (), außer dass, wenn das Blatt Verzeichnis erfolgreich entfernt wurde, removedirs() versucht, sukzessive entfernen alle Eltern genannte Verzeichnis im Pfad, bis ein Fehler ausgelöst wird (das wird ignoriert, weil es in der Regel bedeutet, dass ein übergeordnetes Verzeichnis ist nicht leer).Beispielsweise os.removedirs('foo/bar/baz') zuerst entfernen Sie das Verzeichnis 'foo/bar/baz', und entfernen Sie dann 'foo/bar' und 'foo', wenn Sie leer sind.
InformationsquelleAutor der Antwort Somnath Muluk
Erstellen Sie eine Funktion für Euch.
InformationsquelleAutor der Antwort flycee
Können Sie die integrierte-in
pathlib
- Modul (erfordert Python 3.4+, aber es gibt backports für ältere Versionen auf PyPI:pathlib
pathlib2
).Um eine Datei zu entfernen gibt es die
unlink
Methode:Oder die
rmdir
Methode zum entfernen eines leer Ordner:InformationsquelleAutor der Antwort MSeifert
Für Python 3 entfernen Sie die Datei-und Verzeichnis-individuell, verwenden Sie die
unlink
undrmdir
Path
Objekt-Methoden jeweils:Beachten Sie, dass Sie können auch relative Pfade verwenden, mit
Path
Objekte, und Sie können überprüfen Sie Ihre aktuelle working-directory mitPath.cwd
.Für das löschen einzelner Dateien und Verzeichnisse in Python 2 finden Sie im Abschnitt so beschriftet unten.
Entfernen Sie ein Verzeichnis mit Inhalt, verwenden Sie
shutil.rmtree
und beachten Sie, dass diese in Python 2 und 3:Demonstration
Neues in Python 3.4 ist die
Path
Objekt.Lassen, verwenden um ein Verzeichnis erstellen, Datei demonstrieren Verwendung. Beachten Sie, dass der
/
zu verbinden, die Teile des Pfades, funktioniert dies, um Probleme zwischen den Betriebssystemen und Probleme aus der Verwendung von umgekehrten Schrägstrichen auf Windows (wo müssten Sie entweder weiter verdoppeln, bis Ihre backslashes wie\\
oder verwenden Sie raw-strings, wier"foo\bar"
):und jetzt:
Lassen Sie uns nun, Sie zu löschen. Zuerst die Datei:
Wir können Platzhalter verwenden, um entfernen Sie mehrere Dateien - zuerst erstellen wir ein paar Dateien:
Dann einfach Durchlaufen das glob pattern:
Nun, Demonstration, entfernen Sie das Verzeichnis:
Was ist, wenn wir wollen, um ein Verzeichnis zu entfernen und alles in Ihr?
Für diesen Fall verwenden Sie
shutil.rmtree
Lasst uns neu unserem Verzeichnis und Datei:
und beachten Sie, dass
rmdir
schlägt fehl, es sei denn, es ist leer, das ist der Grund, warum rmtree ist so bequem:Nun, import rmtree und übergeben Sie das Verzeichnis, um die funtion:
und wir können sehen, die ganze Sache wurde entfernt:
Python 2
Wenn du auf Python 2 gibt es eine Rückportierung der pathlib Modul namens pathlib2die installiert werden können mit pip:
Dann können Sie alias-die Bibliothek
pathlib
Oder direkt importieren Sie die
Path
Objekt (wie hier gezeigt):Wenn das zu viel wird, können Sie entfernen von Dateien mit
os.entfernen
oderos.unlink
oder
und Sie können entfernen Sie Verzeichnisse mit
os.rmdir
:Beachten Sie, dass es auch eine
os.removedirs
- es entfernt nur leere Verzeichnisse rekursiv, aber es kann entsprechend Ihren Anwendungsfall.InformationsquelleAutor der Antwort Aaron Hall
shutil.rmtree ist der asynchronen Funktion
also, wenn Sie wollen, um zu überprüfen, wenn Sie es beenden, können Sie mit while...loop
InformationsquelleAutor der Antwort m0z4rt
InformationsquelleAutor der Antwort Lalithesh
Empfehle ich
subprocess
wenn das schreiben von einem schönen und lesbaren code ist Ihre Tasse Tee:Und wenn Sie nicht ein software-Ingenieur, dann vielleicht erwägen, Jupyter; Sie können geben Sie einfach die bash-Befehle:
Traditionell, verwenden Sie
shutil
:InformationsquelleAutor der Antwort Miladiouss