In python, ho creato una funzione per creare una directory se non esiste già.python: perché os.makedirs causa WindowsError?
def make_directory_if_not_exists(path):
try:
os.makedirs(path)
break
except OSError as exception:
if exception.errno != errno.EEXIST:
raise
Su Windows, a volte mi metterò la seguente eccezione:
WindowsError: [Error 5] Access is denied: 'C:\\...\\my_path'
Sembra accadere quando la directory è aperta nel File Browser Windows, ma non riesco a riprodurre in modo affidabile . Quindi, invece, ho appena fatto la seguente soluzione.
def make_directory_if_not_exists(path):
while not os.path.isdir(path):
try:
os.makedirs(path)
break
except OSError as exception:
if exception.errno != errno.EEXIST:
raise
except WindowsError:
print "got WindowsError"
pass
Che cosa sta succedendo qui, vale a dire quando non di Windows mkdir
dare un tale errore di accesso? C'è una soluzione migliore?
Da [Docs] (http://docs.python.org/2/library/os.html#os.makedirs): 'Solleva un'eccezione di errore se la directory leaf esiste già o non può essere creata. –
@AshwiniChaudhary, lo so. Prendo già questa eccezione con 'except OSError'. Sto chiedendo di 'WindowsError'. – izak