Löschen Sie ein Verzeichnis oder eine Datei mit Python
In diesem Artikel erfahren Sie, wie Sie Dateien und Verzeichnisse in Python löschen (entfernen). Python bietet verschiedene Methoden und Funktionen zum Entfernen von Dateien und Verzeichnissen. Sie können die Datei je nach Bedarf entfernen.
Verschiedene von Python bereitgestellte Methoden sind –
- Verwendung von os.remove()
- Verwendung von os.rmdir()
- Shutil.rmtree() verwenden
- Verwenden von pathlib.Path(empty_dir_path).rmdir()
Datei/Verzeichnis mit der Methode os.remove() löschen
OS-Modul in Python stellt Funktionen zur Interaktion mit dem Betriebssystem bereit. Alle Funktionen im OS-Modul werden aktiviert OSError im Falle ungültiger oder unzugänglicher Dateinamen und Pfade oder anderer Argumente, die den richtigen Typ haben, aber vom Betriebssystem nicht akzeptiert werden.
os.remove()-Methode in Python wird verwendet, um einen Dateipfad zu entfernen oder zu löschen. Diese Methode Ein Verzeichnis kann nicht entfernt oder gelöscht werden . Wenn der angegebene Pfad ein Verzeichnis ist, wird OSError von der Methode ausgelöst.
Syntax von os.remove()
Syntax: os.remove(path, *, dir_fd = None)
Parameter: Weg: Ein pfadähnliches Objekt, das einen Dateipfad darstellt. Ein pfadähnliches Objekt ist entweder ein String- oder ein Byte-Objekt, das einen Pfad darstellt.
dir_fd (optional): Ein Dateideskriptor, der auf ein Verzeichnis verweist. Der Standardwert dieses Parameters ist None. Wenn der angegebene Pfad absolut ist, wird dir_fd ignoriert.
Notiz: Das „*“ in der Parameterliste gibt an, dass alle folgenden Parameter (hier in unserem Fall „dir_fd“) reine Schlüsselwortparameter sind und unter Verwendung ihres Namens und nicht als Positionsparameter bereitgestellt werden können.
Rückgabetyp: Diese Methode gibt keinen Wert zurück.
Beispiel 1: Eine Datei in Python löschen
Angenommen, die im Ordner enthaltene Datei lautet:
Wir möchten Datei1 aus dem obigen Ordner löschen. Nachfolgend finden Sie die Implementierung.
Python3
# Python program to explain os.remove() method> # importing os module> import> os> # File name> file> => 'file1.txt'> # File location> location> => 'D:/Pycharm projects/techcodeview.com/Authors/Nikhil/'> # Path> path> => os.path.join(location,> file> )> # Remove the file> # 'file.txt'> os.remove(path)> |
Ausgabe:
Beispiel 2: Datei mit absolutem Pfad entfernen
Wenn der angegebene Pfad ein Verzeichnis ist.
Python3
# Python program to explain os.remove() method> # importing os module> import> os> # Directory name> dir> => 'Nikhil'> # Path> location> => 'D:/Pycharm projects/techcodeview.com/Authors/'> path> => os.path.join(location,> dir> )> # Remove the specified> # file path> os.remove(path)> print> (> '% s has been removed successfully'> %> dir> )> # if the specified path> # is a directory then> # 'IsADirectoryError' error> # will raised> # Similarly if the specified> # file path does not exists or> # is invalid then corresponding> # OSError will be raised> |
Ausgabe:
Traceback (most recent call last): File 'osremove.py', line 11, in os.remove(path) IsADirectoryError: [Errno 21] Is a directory: 'D:/Pycharm projects/techcodeview.com/Authors/Nikhil'
Beispiel 3: Überprüfen Sie vor dem Löschen, ob die Datei vorhanden ist
Fehlerbehandlung bei Verwendung der Methode os.remove().
Python3
# Python program to explain os.remove() method> # importing os module> import> os> # path> path> => 'D:/Pycharm projects/techcodeview.com/Authors/Nikhil'> # Remove the specified> # file path> try> :> > os.remove(path)> > print> (> '% s removed successfully'> %> path)> except> OSError as error:> > print> (error)> > print> (> 'File path can not be removed'> )> |
Ausgabe:
[Errno 21] Is a directory: 'D:/Pycharm projects/techcodeview.com/Authors/Nikhil' File path can not be removed
Notiz: Um mehr über os.remove() zu erfahren, klicken Sie hier.
Datei/Verzeichnis mit der Methode os.rmdir() löschen
Die Methode os.rmdir() in Python wird zum Entfernen oder Löschen eines leeren Verzeichnisses verwendet. OSError wird ausgelöst, wenn der angegebene Pfad kein leeres Verzeichnis ist.
Syntax von os.rmdir()
Syntax: os.rmdir(path, *, dir_fd = None)
Parameter:
Pfad: Ein pfadähnliches Objekt, das einen Dateipfad darstellt. Ein pfadähnliches Objekt ist entweder ein String- oder ein Byte-Objekt, das einen Pfad darstellt. dir_fd (optional): Ein Dateideskriptor, der auf ein Verzeichnis verweist. Der Standardwert dieses Parameters ist None. Wenn der angegebene Pfad absolut ist, wird dir_fd ignoriert.
Notiz: Das „*“ in der Parameterliste gibt an, dass alle folgenden Parameter (hier in unserem Fall „dir_fd“) reine Schlüsselwortparameter sind und unter Verwendung ihres Namens und nicht als Positionsparameter bereitgestellt werden können.
Rückgabetyp: Diese Methode gibt keinen Wert zurück.
Beispiel 1: Alle Verzeichnisse aus einem Verzeichnis löschen
Angenommen, die Verzeichnisse sind –
Wir möchten das Verzeichnis Geeks entfernen. Nachfolgend finden Sie die Implementierung.
Python3
# importing os module> import> os> # Directory name> directory> => 'Geeks'> # Parent Directory> parent> => 'D:/Pycharm projects/'> # Path> path> => os.path.join(parent, directory)> # Remove the Directory> # 'Geeks'> os.rmdir(path)> |
Ausgabe:
Beispiel 2: Fehlerbehandlung beim Löschen eines Verzeichnisses
Behandlung von Fehlern bei der Verwendung der Methode os.rmdir(),
Python3
# Python program to explain os.rmdir() method> # importing os module> import> os> # Directory name> directory> => 'techcodeview.com'> # Parent Directory> parent> => 'D:/Pycharm projects/'> # Path> path> => os.path.join(parent, directory)> # Remove the Directory> # 'techcodeview.com'> try> :> > os.rmdir(path)> > print> (> 'Directory '% s' has been removed successfully'> %> directory)> except> OSError as error:> > print> (error)> > print> (> 'Directory '% s' can not be removed'> %> directory)> # if the specified path> # is not an empty directory> # then permission error will> # be raised> # similarly if specified path> # is invalid or is not a> # directory then corresponding> # OSError will be raised> |
Ausgabe:
[WinError 145] The directory is not empty: 'D:/Pycharm projects/techcodeview.com' Directory 'techcodeview.com' can not be removed
Notiz: Um mehr über os.rmdir() zu erfahren, klicken Sie hier.
Datei/Verzeichnis mit „shutil.rmtree()“ löschen
Shutil.rmtree() wird verwendet, um einen gesamten Verzeichnisbaum zu löschen. Ein Pfad muss auf ein Verzeichnis zeigen (aber kein symbolischer Link zu einem Verzeichnis).
Syntax von Shutil.rmtree()
Syntax: Shutil.rmtree (Pfad,ignore_errors=False,onerror=None)
Parameter:
Pfad: Ein pfadähnliches Objekt, das einen Dateipfad darstellt. Ein pfadähnliches Objekt ist entweder ein String- oder ein Byte-Objekt, das einen Pfad darstellt. ignore_errors: Wenn „ignore_errors“ wahr ist, werden Fehler, die aus fehlgeschlagenen Entfernungen resultieren, ignoriert. onerror: Wenn „ignore_errors“ „false“ ist oder weggelassen wird, werden solche Fehler durch den Aufruf eines durch „onerror“ angegebenen Handlers behandelt.
Löschen Sie ein Verzeichnis und die darin enthaltenen Dateien.
Beispiel 1:
Angenommen, das Verzeichnis und die Unterverzeichnisse lauten wie folgt.
# Übergeordnetes Verzeichnis:
# Verzeichnis im übergeordneten Verzeichnis:
# Datei im Unterverzeichnis:
Beispiel: Alle Dateien aus einem Verzeichnis löschen
Wir möchten das Verzeichnis Autoren entfernen. Nachfolgend finden Sie die Implementierung.
Python3
# Python program to demonstrate> # shutil.rmtree()> import> shutil> import> os> # location> location> => 'D:/Pycharm projects/techcodeview.com/'> # directory> dir> => 'Authors'> # path> path> => os.path.join(location,> dir> )> # removing directory> shutil.rmtree(path)> |
Ausgabe:
Beispiel 2: Fehler beim Löschen eines Verzeichnisses ignorieren
Durch Übergeben vonignore_errors = True.
Python3
# Python program to demonstrate> # shutil.rmtree()> import> shutil> import> os> # location> location> => 'D:/Pycharm projects/techcodeview.com/'> # directory> dir> => 'Authors'> # path> path> => os.path.join(location,> dir> )> # removing directory> shutil.rmtree(path, ignore_errors> => False> )> # making ignore_errors = True will not raise> # a FileNotFoundError> |
Ausgabe:
Traceback (letzter Aufruf zuletzt): Datei D:/Pycharm Projects/gfg/gfg.py, Zeile 16, in Shutil.rmtree (Pfad,ignore_errors=False) Datei C:UsersNikhil AggarwalAppDataLocalPrograms PythonPython38-32libshutil.py, Zeile 730, in rmtree return _rmtree_unsafe(path, onerror) File C:UsersNikhil AggarwalAppDataLocalProgramsPythonPython38-32libshutil.py , Zeile 589, in _rmtree_unsafe onerror(os.scandir, path, sys.exc_info()) File C:UsersNikhil AggarwalAppDataLocalProgramsPythonPython38-32libshutil.py, Zeile 586, in _rmtree_unsafe mit os.scandir(path) als scandir_it: FileNotFoundError: [WinError 3] Das System kann den angegebenen Pfad nicht finden: „D:/Pycharm Projects/techcodeview.com/Authors“
Beispiel 3: Ausnahmehandler
In onerror soll eine Funktion übergeben werden, die drei Parameter enthalten muss.
- Funktion – Funktion, die die Ausnahme ausgelöst hat. path – übergebener Pfadname, der die Ausnahme beim Entfernen ausgelöst hat excinfo – Ausnahmeinformationen, die von sys.exc_info() ausgelöst wurden
Nachfolgend finden Sie die Implementierung
Python3
# Python program to demonstrate> # shutil.rmtree()> import> shutil> import> os> # exception handler> def> handler(func, path, exc_info):> > print> (> 'Inside handler'> )> > print> (exc_info)> # location> location> => 'D:/Pycharm projects/techcodeview.com/'> # directory> dir> => 'Authors'> # path> path> => os.path.join(location,> dir> )> # removing directory> shutil.rmtree(path, onerror> => handler)> |
Ausgabe:
Innerhalb des Handlers (, FileNotFoundError(2, „Das System kann den angegebenen Pfad nicht finden“), ) Innerhalb des Handlers (, FileNotFoundError(2, „Das System kann die angegebene Datei nicht finden“), )
Datei/Verzeichnis mit pathlib.Path(empty_dir_path).rmdir() löschen
Ein leeres Verzeichnis kann auch mit der rmdir()-Methode des Pathlib-Moduls entfernt oder gelöscht werden. Zuerst müssen wir den Pfad für das Verzeichnis festlegen und dann rufen wir die Methode rmdir() für diesen Pfad auf
Syntax von pathlib.Path
Syntax: pathlib.Path(empty_dir_path).rmdir()
Parameter:
empty_dir_path: Ein pfadähnliches Objekt, das einen leeren Verzeichnispfad darstellt. Ein pfadähnliches Objekt ist entweder ein String- oder ein Byte-Objekt, das einen Pfad darstellt.
Rückgabetyp: Diese Methode gibt keinen Wert zurück.
Beispiel: Löschen Sie ein leeres Verzeichnis mit rmdir()
In diesem Beispiel löschen wir einen leeren Ordner. Wir müssen lediglich den Ordnernamen angeben, wenn er sich im Stammverzeichnis befindet
Python3
import> pathlib> # Deleting an empty folder> # Put your file address> empty_dir> => r> 'Untitled Folder'> path> => pathlib.Path(empty_dir).rmdir()> print> (> 'Deleted '%s' successfully'> %> empty_dir)> |
Ausgabe:
Deleted 'Untitled Folder' successfully