Quelle est la différence entre makedirs et mkdir de os?

je suis confus de l'utiliser sur ces deux osméthodes pour créer le nouveau répertoire.

s'il vous Plaît me donner quelques exemple en Python.

21
demandé sur Tom Zych 2012-12-11 15:33:07

3 réponses

makedirs()crée tous les répertoires intermédiaires si elles n'existent pas (comme mkdir -p en bash).

mkdir() peut créer un sous-répertoire unique, et lancera une exception si les répertoires intermédiaires qui n'existent pas sont spécifiés.

peut être utilisé pour créer une seule feuille répertoire (dirA):

  • os.mkdir('dirA')
  • os.makedirs('dirA')

mais makedirs doit être utilisé pour créer "branches":

  • os.makedirs('dirA/dirB') fonctionne [l'ensemble de la structure est créée]

mkdir travail ici sidirA existe déjà, mais si ce n'est pas une erreur sera levée.

notez que contrairement à mkdir -p dans bash, soit échouera si la feuille existe déjà.

53
répondu NPE 2016-03-25 14:24:37

(ne peut pas commenter, il suffit d'ajouter à la réponse de NPE.)

En Python3,os.makedirs a un paramètre par défaut exist_ok=False.

Si vous le réglez à True, puis os.makedirs jeter toute exception si la feuille existe.

(Alors que os.mkdir n'a pas ce paramètre.)

comme ceci:

os.makedirs('dirA', exist_ok=True)

P.S.

Vous pouvez taper ? avant le nom d'une méthode dans l'interpréteur de commandes IPython rapide coup d'oeil à la documentation.

par exemple:

>>> import os
>>> ? os.makedirs
8
répondu Yunqing Gong 2016-02-04 05:21:21

os.makedirs est la fonction de Python, mkdir est la fonction Bash unix.

-9
répondu Mariano 2016-03-07 12:03:02