2016-02-24 3 views
1

Есть ли элегантный способ создания пути Windows следующим образом.Python 3.5 - Создать папку с подпапкой под Windows

home_dir = ('C:\First\Second\Third')   
if not os.path.exists(home_dir): 
    os.mkdir(home_dir) 
    print("Home directory %s was created." %home_dir) 

Я могу создать в отдельных шагов "C: \ First", а затем "Второй" и т.д ...

С помощью этого кода я получаю:

FileNotFoundError: [WinError 3] The system cannot find the path specified: 'C:\First\Second\Third'

ответ

2

Вы должны проверить существование пути каталога с os.path.isdir:

Return True if path is an existing directory.

os.path.isdir("C:\First\Second\Third") 

Это позволит избежать FileNotFoundError.

Затем создайте каналы. Это выглядит примерно так:

home_dir = ('C:\First\Second\Third')   
if not os.path.isdir(home_dir): 
    os.makedirs(home_dir) 
    print("Home directory %s was created." %home_dir) 
+0

путь лучше, спасибо. – Michal

+2

Для Python 3.2+ вы также можете использовать 'os.makedirs (home_dir, exist_ok = True)'. Это создает все каталоги в пути, если это необходимо, и не будет поднимать 'FileExistsError', если каталог листьев уже существует. – eryksun

1

Чтобы создать папку с подпапки использовать:

os.makedirs(home_dir) 
+0

Я пытался использовать os.makidirs раньше и получал точно такую ​​же ошибку. Теперь я вижу, что проблема, которая у меня была, была каким-то поврежденным файлом с моим кодом. В момент, когда я пытаюсь выполнить, я получаю ошибку (unicode error), которая не может декодировать байты. В любом случае, создание нового файла разрешило проблему, и это работает так, как ожидалось. Благодарим за быстрый ответ. – Michal

+0

@Michal, если вы указали путь, подобный 'c: \ dir1 \ dirs2', и если' dir1' не существует, он не сработает («Указанный путь не найден») – Zety

Смежные вопросы