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 makedirs - module os

Signature de la fonction makedirs

 def makedirs(path: str | bytes | os.PathLike, mode: int = 0o777, exist_ok: bool = False) -> None

Description

Cette fonction permet de créer un nouveau dossier mais aussi les dossiers intermédiaires qui pourraient ne pas exister.. Cette fonction est proche de mkdir, mais cette dernière ne construit par les dossiers intermédiaires manquants. On peut donc dire que makedirs est une « super fonction mkdir ».

Vous pouvez spécifier les droits initiaux à appliquer aux nouveaux dossiers en utilisant le paramètre mode.

il est possible, en Python, de spécifier un entier en base octale (base 8), en débutant votre nombre via le préfixe 0o. La gestion des droits Unix/Linux étant basée sur une représentation en base octale, je vous recommande conserver cette façon de faire pour spécifier les droits du nouveau dossier.

Par défaut, si le dossier final (celui à la droite du chemin) existe déjà, la fonction makedirs produira une erreur. Il est cependant possible de changer ce comportement en fixant le paramètre exist_ok à True : dans ce cas aucune erreur ne sera produite.

help(os.makedirs)

makedirs(name [, mode=0o777][, exist_ok=False])

    Super-mkdir; create a leaf directory and all intermediate ones.  Works like
    mkdir, except that any intermediate path segment (not just the rightmost)
    will be created if it does not exist. If the target directory already
    exists, raise an OSError if exist_ok is False. Otherwise no exception is
    raised.  This is recursive.

    

Paramètres

ParamètreDescription
 path : str | bytes | os.PathLike 
Le chemin du dossier à créer
 mode : int = 0o777 
Les droits initiaux du nouveau dossier.
 exist_ok : bool = False 
Permet de contrôler si la fonction doit déclencher une exception si le dossier final existe déjà.

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 
import os

# On prépare des chemins vers différents dossiers
root = "./project"
sub_folder_1 = os.path.join(root, "bin")
sub_folder_2 = os.path.join(root, "src")
sub_folder_3 = os.path.join(root, "test")

# Si les dossiers n'existent pas, on les crée, sinon on poursuit l'exécution
try:
    os.makedirs(sub_folder_1, 0o755, True)
    os.makedirs(sub_folder_2, 0o755, True)
    os.makedirs(sub_folder_3, 0o755, True)
    
    print("Structure de projet opérationnelle.")
except OSError:
    print("Impossible de créer les dossiers manquants !")
Exemple d'utilisation de la fonction os.makedirs.

Voir aussi

Fonction os.chdir
Fonction os.fchdir
Fonction os.mkdir
Fonction os.rmdir
Fonction tempfile.mkdtemp