Сохранение нескольких изображений в каталог, используя python - PullRequest
1 голос
/ 16 марта 2020

Я пытаюсь сохранить несколько изображений в каталог, который создается с помощью ввода пользователя. Ниже приведен код создания каталога:

while True:
        Name = input("Enter your name: ")
        try:
            os.mkdir(Name)
            break
        except FileExistsError:
            while True:
                remove =  str(input("Do you want to rewrite the directory?"))
                if remove=="yes" or remove=="Yes" or remove=="y" or remove=="Y":
                    shutil.rmtree(Name)
                    os.mkdir(Name)
                    break
                if remove=="no" or remove=="No" or remove=="n" or remove=="N":
                    pass
                else:
                    continue
            break

Я знаю, что сделал что-то не так с приведенным ниже кодом, но я не знаю, что это, так как я только начинающий

if key == ord("k"):
        p = ("/dataset/Name/" + "{}.png".format(str(total).zfill(5)))
        cv2.imwrite(p, orig)
        total += 1


    elif key == ord("q"):
        break

он выдает эту ошибку

cv2.imwrite (p, orig) cv2.error: OpenCV (4.0.0) /home/pi/opencv/modules/imgcodecs/src/loadsave.cpp: 661:> ошибка: (-2: неуказанная ошибка) не удалось найти устройство записи для указанного расширения> в функции 'imwrite _'

попытался предложить Джоном удалить os.path.sep.join () из p, но он сохраняется в несуществующий каталог с именем Name. Имя должно быть переменной для ввода пользователя. Изображения, которые должны были быть сохранены, где также нигде не было найдено.

Я не знаю, что случилось, но это больше не работает. Ниже был отредактированный код

if key == ord("k"):
    p = (f"/dataset/{Name}/" + '.' + str(total) + ".png")
    cv2.imwrite(p, orig)
    total += 1

1 Ответ

1 голос
/ 16 марта 2020

должен был заменить "/dataset/Name/" на "/dataset/{Name}/", если вы хотите использовать значение пользовательского ввода, или использовать .format(), чтобы заполнить его, если ваш python не поддерживает f '' - строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...