def makedirs(path: str | bytes | os.PathLike, mode: int = 0o777, exist_ok: bool = False) -> None
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
.
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.
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ètre | Description |
---|---|
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à. |
Cette méthode ne renvoie aucune valeur.
FileExistsError :Une exception de ce type sera déclenchée si le dossier existe déjà et que le paramètre
exist_ok
est initialisé à False
.
PermissionError :Une exception de ce type sera déclenchée si vous n'avez pas les droits d'accès sur le répertoire parent du dossier à créer.
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 !") |
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 :