Как мне создать новый каталог и написать новый файл 'wb' на python? - PullRequest
0 голосов
/ 01 ноября 2018

У меня есть эта часть функции, которая, кажется, не будет работать должным образом. В нем говорится, что каталог не существует, но я пытаюсь сохранить его под новым. Я просто не знаю, что я делаю не так. Я умею делать каталоги и файлы (подумал я).

import os
from datetime import date

def save_image(d, image):
    """
    Save binary image on disk.

    Use the date of the image (d) to create a directory structure 
    (year/month) if it doesn't exist already,
    then save the binary image under its corresponding year and month using 
    the date (d) + '.jpg' as a file name

    HINT: Binary data can be written to files in a similar way to how 
    strings are written to files.
    Use 'wb' (write binary) instead of 'w' in the file open clause (i.e. 
    open(file_path, 'wb'))

    args:
        d: date object containing image date
        image: binary image itself

    returns:
        file_path: where the image was saved

    examples:
        if d = 2017-8-21, the image will be saved as: 2017/8/2017-8-21.jpg
        if d = 1998-4-15, the image will be saved as: 1998/4/1998-4-15.jpg
    """

    ds = str(d.year)+'/'+str(d.month)
    file_path = ds+'/'+str(d)+'.jpg'

до этого момента file_path записывался аналогично примеру, но после этого он не будет создавать новый каталог. Это просто выдает ошибку, говоря, что каталог не существует. Я так растерялся, почему он не позволяет мне создать новый каталог, а затем сохранить изображение в новом файле. ЛЮБЫЕ ИДЕИ?

    os.mkdir(ds)
    with open(file_path, 'wb') as file:
        file.write(image)
    return file_path

1 Ответ

0 голосов
/ 01 ноября 2018
ds = str(d.year)+'/'+str(d.month)
--> 2018/10

Это недопустимый каталог. Это на самом деле две директории.

Используйте os.makedirs для их рекурсивного создания.

...