Создание каталогов рекурсивно в Python

1

Мне нужно создать файл с python в каталоге:

foo/bar/baz/filename.fil

Единственная проблема: я не знаю, были ли созданы baz, bar или даже foo (возможно, они были, но script не гарантирует этого). Так что, я просто не могу сделать это просто:

file = open('foo/bar/baz/filename.fil', 'wb')
# Stuff
# file.close()

потому что я получу IOError, если foo или bar или baz не существует. Итак, я думал, что могу написать script, который

1.  Through a loop of os.path.split()s, get each directory.
2.  In a loop:  Test to see if each directory exists:
3.       If it doesn't: make it
4.  Then write the file.

Однако, похоже, что у python должен быть лучший способ сделать это, так что я что-то упускаю, или это единственный (или лучший) способ сделать это алгоритм, указанный мной выше?

Спасибо.

Теги:
file

1 ответ

4
Лучший ответ

Используйте os.makedirs

  • 0
    Ах, ладно ... Я пропустил этот (смотрел на os.makedir), в любом случае, возможно, что листовой каталог будет существовать ... хотя я думаю, что это легко обнаружить.
  • 0
    @Leif: верно. Перехват исключения OSError - самый простой способ.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню