В python я создал функцию, чтобы сделать каталог, если он еще не существует.python: почему os.makedirs вызывают WindowsError?
def make_directory_if_not_exists(path):
try:
os.makedirs(path)
break
except OSError as exception:
if exception.errno != errno.EEXIST:
raise
В Windows, иногда я получаю следующее исключение:
WindowsError: [Error 5] Access is denied: 'C:\\...\\my_path'
Это, кажется, случается, когда каталог открыт в File Browser Windows, но я не могу достоверно воспроизвести , Поэтому вместо этого я сделал следующее обходное решение.
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
Что здесь происходит, то есть, когда делает для Windows mkdir
дают такую ошибку доступа? Есть ли лучшее решение?
С [документы] (HTTP://docs.python.org/2/library/os.html#os.makedirs): 'вызывает исключение ошибки, если каталог листьев уже существует или не может быть создан.' –
@AshwiniChaudhary, я знаю. Я уже поймаю это исключение с помощью 'except OSError'. Я спрашиваю о 'WindowsError'. – izak