Je veux exécuter la commande mkdir
en tant que:
mkdir -p directory_name
Quelle est la méthode pour faire cela en Python?
os.mkdir(directory_name [, -p]) didn't work for me.
Vous pouvez essayer ceci:
# top of the file
import os
import errno
# the actual code
try:
os.makedirs(directory_name)
except OSError as exc:
if exc.errno == errno.EEXIST and os.path.isdir(directory_name):
pass
Quelque chose comme ça:
if not os.path.exists(directory_name):
os.makedirs(directory_name)
UPD: comme il est dit dans un commentaire, vous devez vérifier s'il y a une exception pour la sécurité du thread
try:
os.makedirs(directory_name)
except OSError as err:
if err.errno!=17:
raise
Selon la documentation , vous pouvez maintenant l’utiliser depuis python 3.2
os.makedirs("/directory/to/make", exist_ok=True)
et il ne générera pas d'erreur lorsque le répertoire existe.
Vous pouvez faire path.mkdir(parents=True, exist_ok=True)
si vous utilisez pathlib
.
from pathlib import Path
directory = Path('./some/nested/directory')
direcotry.mkdir(parents=True, exist_ok=True)
parents=True
crée tous les répertoires parents dont vous avez besoin et exist_ok=True
indique à mkdir()
de ne pas commettre d'erreur si le répertoire existe déjà. Voir le pathlib.Path.mkdir
docs .