Maison >développement back-end >Tutoriel Python >Comment créer un répertoire et ses répertoires parents manquants en Python ?

Comment créer un répertoire et ses répertoires parents manquants en Python ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-21 10:17:091009parcourir

How to Create a Directory and its Missing Parent Directories in Python?

Création d'un répertoire et de répertoires parents manquants à l'aide de Python

Q : Comment puis-je créer un répertoire à un chemin spécifié tout en créer des répertoires parents manquants le long de ce chemin ?

Pour obtenir cette fonctionnalité dans Python ≥ 3.5, utilisez pathlib.Path.mkdir :

from pathlib import Path
Path("/my/directory").mkdir(parents=True, exist_ok=True)

Pour les versions antérieures de Python, envisagez les approches suivantes :

Approche 1 : Utiliser os.path.exists et os.makedirs

import os
if not os.path.exists(directory):
    os.makedirs(directory)

Bien que cette approche soit simple, elle pose un risque potentiel condition.

Approche 2 : Gérer les conditions de concurrence potentielles

import os, errno

try:
    os.makedirs(directory)
except OSError as e:
    if e.errno != errno.EEXIST:
        raise

Cette option répond à la condition de concurrence en détectant et en examinant le code d'erreur.

Améliorations modernes de Python :

Les versions 3.3 et 3.2 de Python introduisent améliorations :

  • FileExistsError est exposé, permettant une gestion plus propre des erreurs.
  • os.makedirs comporte l'argument de mot-clé exist_ok, permettant la création de répertoire même s'il existe déjà.
try:
    os.makedirs("path/to/directory")
except FileExistsError:
    # directory already exists
    pass
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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn