Maison >développement back-end >Tutoriel Python >Comment puis-je créer des répertoires et leurs répertoires parents en Python ?

Comment puis-je créer des répertoires et leurs répertoires parents en Python ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-15 12:29:19460parcourir

How Can I Create Directories and Their Parent Directories in Python?

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!

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