Как создать папки последовательно с помощью функции os.makedirs?

Здравствуйте! <br/> Как можно реализовать проверку на наличие папки с именем, содержащимся в переменной `name`, и при её отсутствии создать эту папку, а внутри неё - папку с именем из переменной `ear`? <br/> Код, приведённый ниже, не работает. Могли бы вы помочь с исправлением? <br/> 
```python
name = str("example") 
ear = str("2025") 
if os.path.exists(name) is False:
    os.makedirs(name, ear)
``` 
<br/>
  • 23 октября 2024 г. 17:32
Ответы на вопрос 2
Для создания папок в Python с использованием функции `os.makedirs`, нужно правильно указать путь ко всем создаваемым директориям. В вашем коде есть небольшая ошибка в передаче аргументов в функцию `os.makedirs`. 

Функция `os.makedirs` принимает один аргумент — путь к создаваемым директориям. Если вы хотите создать папку `ear` внутри папки `name`, вам нужно указать полный путь к новой папке, комбинируя оба имени. 

Вот исправленный код:

```python
import os

name = "example"
ear = "2025"

# Проверяем, существует ли папка с именем 'name'
if not os.path.exists(name):
    # Создаем папку 'name' и внутри нее папку 'ear'
    os.makedirs(os.path.join(name, ear))
```

В этом коде используется `os.path.join(name, ear)`, чтобы правильно сформировать путь к папке, которую нужно создать. Функция `os.makedirs` создаст как папку `example`, так и вложенную папку `2025`. 

Если папка `example` уже существует, код не будет ничего делать, так как проверка `os.path.exists(name)` предотвратит создание существующей папки.
os.path 
import os


def create_nested_folder(parent_folder: str, nested_folder: str):

    if not os.path.exists(parent_folder):
        path = os.path.join(parent_folder, nested_folder)
        os.makedirs(path)
        return True
    return False


if __name__ == "__main__":

    folder = 'example'
    n_fodler = '2025'

    ret = create_nested_folder(folder, n_fodler)
    print(ret)
Похожие вопросы