Création de répertoires et de leurs parents avec Python
Dans le domaine des systèmes de fichiers, il est souvent nécessaire de créer des répertoires, à la fois au chemin spécifié et tous les répertoires parents manquants en cours de route. Cela imite la fonctionnalité de la commande mkdir -p de Bash.
Python moderne (≥ 3.5) :
Le module pathlib de Python fournit un moyen pratique de gérer cela :
from pathlib import Path Path("/my/directory").mkdir(parents=True, exist_ok=True)
Python plus âgé Versions :
Utilisation du module os :
import os if not os.path.exists(directory): os.makedirs(directory)
Cette approche présente une condition de concurrence potentielle, comme indiqué dans les commentaires. Pour résoudre ce problème, vous pouvez utiliser un deuxième appel os.path.exists ou intercepter l'OSError et examiner le code d'erreur intégré :
import os, errno try: os.makedirs(directory) except OSError as e: if e.errno != errno.EEXIST: raise
Cependant, cela introduit le risque de manquer d'autres erreurs.
Versions Python améliorées :
Python 3.3 introduit FileExistsError, qui simplifie la gestion des erreurs :
try: os.makedirs("path/to/directory") except FileExistsError: # directory already exists pass
Python 3.2 ajoute également l'argument exist_ok à os.makedirs :
os.makedirs("path/to/directory", exist_ok=True) # succeeds even if directory exists.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!