Maison >développement back-end >Tutoriel Python >Comment créer un répertoire avec des répertoires intermédiaires en Python ?

Comment créer un répertoire avec des répertoires intermédiaires en Python ?

DDD
DDDoriginal
2024-10-29 13:49:29527parcourir

How to create a directory with intermediate directories in Python?

La fonction "mkdir -p" en Python [dupliquer]

En Python, comment implémenter quelque chose de similaire à la commande shell "mkdir -p" "Fonction ? En espérant une solution qui ne repose pas sur des appels système et dont la longueur de code est inférieure à 20 lignes.

Solution

Pour Python ≥ 3.5, utilisez pathlib.Path.mkdir :

<code class="python">import pathlib
pathlib.Path("/tmp/path/to/desired/directory").mkdir(parents=True, exist_ok=True)</code>

Le paramètre exist_ok était nouveau dans Python 3.5.

Pour Python ≥ 3.2, os.makedirs a un troisième argument facultatif exist_ok qui, lorsqu'il est vrai, active la fonctionnalité mkdir -p sauf lorsque mode est fourni et que les autorisations du répertoire diffèrent des autorisations attendues dans ce cas ; , une OSError est levée comme avant :

<code class="python">import os
os.makedirs("/tmp/path/to/desired/directory", exist_ok=True)</code>

Pour les versions antérieures de Python, vous pouvez utiliser os.makedirs et ignorer l'erreur :

<code class="python">import errno
import os

def mkdir_p(path):
    try:
        os.makedirs(path)
    except OSError as exc:  # Python ≥ 2.5
        if exc.errno == errno.EEXIST and os.path.isdir(path):
            pass
        # 还可以在此处理其他errno情况,否则:
        else:
            raise</code>

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