Supprimer un répertoire ou un fichier à l'aide de Python

Supprimer un répertoire ou un fichier à l'aide de Python

Dans cet article, nous expliquerons comment supprimer (supprimer) des fichiers et des répertoires en Python . Python fournit différentes méthodes et fonctions pour supprimer des fichiers et des répertoires. On peut supprimer le fichier selon ses besoins.

Diverses méthodes fournies par Python sont :

Suppression d'un fichier/répertoire à l'aide de la méthode os.remove()

Module du système d'exploitation en Python fournit des fonctions pour interagir avec le système d'exploitation. Toutes les fonctions du module os augmentent OSErreur dans le cas de noms et chemins de fichiers invalides ou inaccessibles, ou d'autres arguments qui ont le type correct mais ne sont pas acceptés par le système d'exploitation.

Méthode os.remove() en Python est utilisé pour supprimer ou supprimer un chemin de fichier. Cette méthode ne peut pas supprimer ou supprimer un répertoire . Si le chemin spécifié est un répertoire, alors OSError sera déclenché par la méthode.

Syntaxe de os.remove()

Syntaxe: os.remove(chemin, *, dir_fd = Aucun)

Paramètre: chemin: Un objet de type chemin représentant un chemin de fichier. Un objet de type chemin est soit un objet chaîne, soit un objet octets représentant un chemin.

    dir_fd (facultatif) : un descripteur de fichier faisant référence à un répertoire. La valeur par défaut de ce paramètre est Aucun. Si le chemin spécifié est absolu, alors dir_fd est ignoré.

Note: Le « * » dans la liste des paramètres indique que tous les paramètres suivants (ici, dans notre cas, « dir_fd ») sont des paramètres de mots-clés uniquement et qu'ils peuvent être fournis en utilisant leur nom, et non en tant que paramètre de position.

Type de retour : Cette méthode ne renvoie aucune valeur.

Exemple 1 : supprimer un fichier en Python

Supposons que les fichiers contenus dans le dossier soient :

Nous voulons supprimer le fichier1 du dossier ci-dessus. Ci-dessous la mise en œuvre.

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)>

Sortir:

Exemple 2 : Supprimer le fichier avec le chemin absolu

Si le chemin spécifié est un répertoire.

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>

Sortir:

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' 

Exemple 3 : Vérifiez si le fichier existe avant de le supprimer

Erreur de gestion lors de l'utilisation de la méthode 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'> )>

Sortir:

[Errno 21] Is a directory: 'D:/Pycharm projects/techcodeview.com/Authors/Nikhil' File path can not be removed 

Note: Pour en savoir plus sur os.remove() cliquez ici .

Suppression d'un fichier/répertoire à l'aide de la méthode os.rmdir()

La méthode os.rmdir() en Python est utilisée pour supprimer ou supprimer un répertoire vide. OSErreur sera déclenché si le chemin spécifié n'est pas un répertoire vide.

Syntaxe de os.rmdir()

Syntaxe: os.rmdir(chemin, *, dir_fd = Aucun)

Paramètre:

    path : un objet de type chemin représentant un chemin de fichier. Un objet de type chemin est soit un objet chaîne, soit un objet octets représentant un chemin. dir_fd (facultatif) : un descripteur de fichier faisant référence à un répertoire. La valeur par défaut de ce paramètre est Aucun. Si le chemin spécifié est absolu, alors dir_fd est ignoré.

Note: Le « * » dans la liste des paramètres indique que tous les paramètres suivants (ici, dans notre cas, « dir_fd ») sont des paramètres de mots-clés uniquement et qu'ils peuvent être fournis en utilisant leur nom, et non en tant que paramètre de position.

Type de retour : Cette méthode ne renvoie aucune valeur.

Exemple 1: Supprimer tous les répertoires d'un répertoire

Supposons que les répertoires soient –

Nous souhaitons supprimer le répertoire Geeks. Ci-dessous la mise en œuvre.

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)>

Sortir:

Exemple 2 : gestion des erreurs lors de la suppression d'un répertoire

Gestion des erreurs lors de l'utilisation de la méthode 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>

Sortir:

[WinError 145] The directory is not empty: 'D:/Pycharm projects/techcodeview.com' Directory 'techcodeview.com' can not be removed 

Note: Pour en savoir plus sur os.rmdir() cliquez ici .

Suppression du fichier/répertoire à l'aide de Shutil.rmtree()

shutdown.rmtree() est utilisé pour supprimer une arborescence de répertoires entière, un chemin doit pointer vers un répertoire (mais pas un lien symbolique vers un répertoire).

Syntaxe de Shutil.rmtree()

Syntaxe: shuil.rmtree(chemin, ignore_errors=False, onerror=Aucun)

Paramètres:

    path : un objet de type chemin représentant un chemin de fichier. Un objet de type chemin est soit un objet chaîne, soit un objet octets représentant un chemin. ignore_errors : si ignore_errors est vrai, les erreurs résultant d'échecs de suppression seront ignorées. onerror : si ignore_errors est faux ou omis, ces erreurs sont gérées en appelant un gestionnaire spécifié par onerror.

Supprimez un répertoire et les fichiers qu'il contient.

Exemple 1:

Supposons que le répertoire et les sous-répertoires soient les suivants.

# Dossier Parent:

# Répertoire dans le répertoire parent :

# Fichier dans le sous-répertoire :

Exemple : Supprimer tous les fichiers d'un répertoire

Nous souhaitons supprimer le répertoire Auteurs. Ci-dessous la mise en œuvre.

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)>

Sortir:

Exemple 2 : ignorer l'erreur lors de la suppression d'un répertoire

En passant ignore_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>

Sortir:

Traceback (dernier appel le plus récent) : Fichier D:/Pycharmprojects/gfg/gfg.py, ligne 16, dans Shutil.rmtree(path, ignore_errors=False) Fichier C:UsersNikhil AggarwalAppDataLocalPrograms PythonPython38-32libshutil.py, ligne 730, dans rmtree return _rmtree_unsafe(path, onerror) File C:UsersNikhil AggarwalAppDataLocalProgramsPythonPython38-32libshutil.py , ligne 589, dans _rmtree_unsafe onerror(os.scandir, path, sys.exc_info()) Fichier C:UsersNikhil AggarwalAppDataLocalProgramsPythonPython38-32libshutil.py, ligne 586, dans _rmtree_unsafe avec os.scandir(path) comme scandir_it : FileNotFoundError : [WinError 3] Le système ne trouve pas le chemin spécifié : 'D:/Pycharmprojects/techcodeview.com/Authors'

Exemple 3 : gestionnaire d'exceptions

En cas d'erreur, une fonction doit être transmise qui doit contenir trois paramètres.

    fonction – fonction qui a déclenché l’exception. path – nom du chemin transmis qui a déclenché l'exception lors de la suppression excinfo – informations sur l'exception générées par sys.exc_info()

Ci-dessous la mise en œuvre

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)>

Sortir:

Gestionnaire interne (, FileNotFoundError(2, 'Le système ne peut pas trouver le chemin spécifié'), ) Gestionnaire interne (, FileNotFoundError(2, 'Le système ne peut pas trouver le fichier spécifié'), )

Suppression du fichier/répertoire à l'aide de pathlib.Path(empty_dir_path).rmdir()

Un répertoire vide peut également être supprimé ou supprimé à l’aide de la méthode rmdir() du module pathlib. Tout d’abord, nous devons définir le chemin du répertoire, puis nous appelons la méthode rmdir() sur ce chemin.

Syntaxe de pathlib.Path

Syntaxe : pathlib.Path(empty_dir_path).rmdir()

Paramètre:

    empty_dir_path : Un objet semblable à un chemin représentant un chemin de répertoire vide. Un objet de type chemin est soit un objet chaîne, soit un objet octets représentant un chemin.

Type de retour : Cette méthode ne renvoie aucune valeur.

Exemple : supprimez un répertoire vide à l'aide de rmdir()

Dans cet exemple, nous allons supprimer un dossier vide, il suffit de préciser le nom du dossier s'il se trouve dans le répertoire racine

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)>

Sortir:

Deleted 'Untitled Folder' successfully