Python создает папку в моем каталоге каждый раз, когда я вызываю этот метод. Этот метод находится в одном из моих приложений Django, который требует доступа к локальной области сервера.Python Создание нежелательной папки в каталоге
def filepath(filename, foldername='', envar='MYAPPDIR'):
if envar is not None and envar is os.environ:
dirpath = os.environ[envar]
else:
dirpath = '~/myFolder/%s' % foldername
expanded = os.path.expanduser(dirpath)
if not os.path.isdir(expanded):
if os.path.lexists(expanded):
raise IOError(errno.EEXIST, "Path is a file, nor a dir", expanded)
os.makedirs(expanded)
return os.path.join(expanded, filename)
Я бы хотел остановить это.
Обратите внимание:: пользователь может указать, находится ли он в другом каталоге по умолчанию. Поэтому папка по умолчанию - myFolder
, однако, если пользователь хочет использовать папку с именем myOtherFolder
в пределах myFolder
(поэтому ~/myFolder/myOtherFolder/
), то они могут. Это тот тип функциональности, который я пытаюсь реализовать, поэтому я использую folder=''
, если аргумент не передан методу (что я считаю проблемой).
к сожалению до сих пор не работает. Может быть, я был немного неясен, я только что обновил свой первоначальный вопрос. – Federer
@ theEconomist: Я думаю, вы сделали это более неясным. Если вы не хотите создавать каталог, то отбросьте часть всего makedirs. (Удалите все в моем коде с «try» до «return».) Вы можете проверить, что каталог существует, или просто вернуть результат, и позволить обработать код более высокого уровня (поскольку похоже, что он имеет сходные проблемы в любом случае). – 2010-02-03 12:39:19