Maison  >  Article  >  développement back-end  >  Comment simuler la fonctionnalité « mkdir -p » en Python ?

Comment simuler la fonctionnalité « mkdir -p » en Python ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-28 19:40:29362parcourir

How to Simulate the `mkdir -p` Functionality in Python?

Python mkdir -p Equivalent

Pour simuler la fonctionnalité mkdir -p du shell à partir de Python, plusieurs approches sont disponibles.

Python 3.5 et versions ultérieures

Python 3.5 introduit la fonction pathlib.Path.mkdir, qui inclut les paramètres parents et exist_ok. En définissant parents sur True et exist_ok sur True, il crée le répertoire et tous les répertoires parents inexistants sans générer d'erreur :

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

Python 3.2 et versions ultérieures

Pour Python 3.2 et supérieur, la fonction os.makedirs a un troisième argument facultatif, exist_ok, qui peut être défini sur True pour obtenir le même comportement :

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

Versions Python antérieures

Pour les anciennes versions de Python, vous pouvez utiliser la fonction os.makedirs et intercepter l'exception OSError lorsque le répertoire existe déjà en utilisant le code suivant :

<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
        # possibly handle other errno cases here, otherwise finally:
        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