создавать каталоги из python

Друзья. Я разрабатываю код, в котором хранятся фотографии, но у меня возникла ошибка при создании папок, в которых я буду хранить фотографии. Надеюсь, вы поможете мне. У меня есть этот код:

curDir = os.getcwd()

if key == ord("k"):
    p = os.path.sep.join([curDir, "dataset", os.mkdir(name), "{}.png".format(
        str(total).zfill(5))])
    cv2.imwrite(p, orig)
    total += 1

Я объясняю код, если нажимаю кнопку ' k 'возьмите фотографию, и curDir захватит адрес папок, набор данных называется папкой, в которой я хочу сохранить сделанные фотографии, ниже я создаю папку с именем, которое уже присвоено ей, и которое хранится в переменной name и, наконец, я ставлю .png и ставлю счетчик для имен сделанных фотографий, и я получаю следующую ошибку:

Traceback (most recent call last):
  File "face_video.py", line 69, in <module>
    str(total).zfill(5))])
TypeError: sequence item 2: expected str instance, NoneType found

Надеюсь, вы поможете мне устранить сомнения ..

2
задан 01.12.2019, 03:24
2 ответа

Ошибка то, что ты estÃ: говоря дело в том, что join() estÃ: ожидая цепи, в третьей стоимости списка (¦-ndice 2), однако стоимости, которая у нас есть, один None. Проблема состоит в том, что os.mkdir(name) не возвращает ningún стоимость. Soluci¦n ser¦, - который должен создавать папку из-за снаружи definici¦n списка и использовать только имя:

os.mkdir(name)
p = os.path.sep.join([curDir, "dataset", name, "{}.png".format(
        str(total).zfill(5))])

Или завертывать os.mkdir в собственный funci¦n, который возвращал бы имя папки:

def mkdir_with_return(name):
  os.mkdir(name)
  return name
0
ответ дан 01.12.2019, 10:30

Проверь эту часть

 p = os.path.sep.join([curDir, "dataset", os.mkdir(name), "{}.png".format(
        str(total).zfill(5))])

Espec¦-ficamente str(total).zfill(5)

Смоги состоять в том, чтобы método join не принял этот тип информации.

общее количество = str (total.zfill (5))

0
ответ дан 01.12.2019, 10:30
  • 1
    ok я понимаю тебя ответ @fernando carraro, но смотри, лишил ли его параметра os.mkdir (ямс), который является тем, который создает мне папку с именем переменной, хранившейся в ямсе, если оно функционирует помещая такой код: if key == ord (" k"): p = os.path.sep.join ([curDir, " dataset" " { } .png" .format (str (общее количество) .zfill (5))]) cv2.imwrite (p, orig) общее количество + = 1 – Carlos Chavita 01.12.2019, 02:42