Participer au site avec un Tip
Rechercher
 

Améliorations / Corrections

Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.

Emplacement :

Description des améliorations :

Module « os » Python 3.11.3

Fonction rmdir - module os

Signature de la fonction rmdir

 def rmdir(path: str | bytes | os.PathLike, *, dir_fd: int = None) -> None

Description

Cette fonction permet de supprimer le dossier spécifié en paramètre (rmdir = ReMove DIRectory)..

le dossier à supprimer doit impérativement être vide pour être effectivement supprimé. Si le dossier contient au moins un fichier ou un sous-dossier, la fonction rmdir produira une erreur. Pour supprimer un dossier contenant des éléments (fichiers ou sous-dossiers), vous pouvez utiliser la fonction shutil.rmtree.

Deux possibilités vous sont proposées pour indiquer le dossier à supprimer :

rmdir("./folder")
fd = os.open("./parentFolder", os.O_RDONLY) 
rmdir("folder", dir_fd=fd)
le caractère * situé dans la déclaration des paramètres de la fonction rm_dir permet d'indiquer la fin des paramètres positionnels et le début des paramètres nommés.
la gestion des descripteurs de fichiers et de dossier, et donc du paramètre dir_fd, est pleinement pris en charge depuis la version 3.3 de Python. De plus, la notion de descripteur, emblème d'un système d'exploitation Unix/Linux, n'est pas forcément supportée sur tous les autres systèmes. Le set os.supports_dir_fd permet donc de savoir, en fonction du système d'exploitation considéré, quelles sont les fonctions du module os supportant la gestion des descripteurs de dossiers. Il est donc possible de conditionner leurs utilisations.
if os.rmdir in os.supports_dir_fd:
    fd = os.open("./folder", os.O_RDONLY) 
    rmdir(dir_fd=fd)

help(os.rmdir)

Remove a directory.

If dir_fd is not None, it should be a file descriptor open to a directory,
  and path should be relative; path will then be relative to that directory.
dir_fd may not be implemented on your platform.
  If it is unavailable, using it will raise a NotImplementedError.

Paramètres

ParamètreDescription
 path : str | bytes | os.PathLike 
Le chemin du dossier à supprimer
 dir_fd : int = None 
Le descripteur du dossier parent contenant le dossier à supprimer.

Valeur de retour

Cette méthode ne renvoie aucune valeur.

Exceptions

Exemple(s) de code

 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
 12 
 13 
 14 
 15 
 16 
 17 
 18 
 19 
 20 
 21 
 22 
 23 
 24 
 25 
 26 
 27 
 28 
import os

parent_path = "./ParentFolder"
child_path = "Folder"

try:
    # On crée deux dossiers imbriqués dans le dossier courant
    os.makedirs(parent_path + os.sep + child_path)
except OSError:
    print("Dossiers déjà existant.")


try:    
    # Récupération du descripteur du dossier parent 
    fd = os.open(parent_path, os.O_RDONLY)
    
    # Appel à rmdir en spécifiant un descripteur de dossier 
    os.rmdir(child_path, dir_fd=fd) 
    
    # Appel à rmdir sans descripteur de dossier
    os.rmdir(parent_path)
    
    # On affiche le contenu du dossier courant
    os.system("ls -l")
except OSError:
    print("Impossible de supprimer les dossiers.")
        
print("Bye bye")
Exemple d'utilisation de la fonction os.rmdir.
à date de l'écriture de cette page, les descripteurs de fichiers et de dossiers ne fonctionnent pas sous Windows !

Voir aussi