9
votes

Python: Pourquoi Os.Makedirs cause-t-il WindowsError?

dans Python, j'ai fait une fonction pour créer un répertoire si cela n'existe pas déjà. xxx

sous Windows, parfois, je vais obtenir l'exception suivante:

WindowsError: [Erreur 5] L'accès est refusé: 'C: \\ ... \\ my_path '

Il semble se produire lorsque le répertoire est ouvert dans le navigateur de fichiers Windows, mais je ne peux pas le reproduire de manière fiable. Donc, au lieu de cela, je viens de faire la solution suivante. xxx

Qu'est-ce qui se passe ici, c'est-à-dire quand Windows mkdir donne une telle erreur d'accès? Y a-t-il une meilleure solution?


2 commentaires

De DOCS : soulève une exception d'erreur si le Le répertoire des feuilles existe déjà ou ne peut pas être créé.


@Ashwinichaudary, je sais. J'ai déjà attrapé cette exception avec sauf OsError . Je demande à propos de windowsError .


3 Réponses :


4
votes

Un peu googler révèle que cette erreur est soulevée dans plusieurs contextes différents, mais la plupart d'entre eux ont à voir avec les erreurs d'autorisations. Le script peut devoir être exécuter en tant qu'administrateur, ou il peut y avoir un autre programme ouvert à l'aide d'un des répertoires que vous essayez d'utiliser.


0 commentaires

6
votes

Vous devez utiliser OsError ainsi que IoError. Voir Cette répondez, vous utiliserez quelque chose comme: xxx


0 commentaires

0
votes

sur votre question sur une meilleure solution j'utiliser le code trois lignes simples et claires ici:

def make_directory_if_not_exists(path):
    if not os.path.isdir(path):
        os.makedirs(path)


0 commentaires