170 похожих чатов

Django. Меня эта ошибка достала я качаю фотки в цикле

в формате .jpeg и сохраняю их в базу.
Бывает что фотка скачивается битая её размер в 10 раз меньше, там ошибка.
Вот последняя версия как я пытаюсь избежать исключение, я правильно делаю?

def save_images(listing):
i = 0
for i in range(len(listing.Media)):
try:
f = open(f"{MEDIA_DIR}/download_images/img_{i}.jpeg", 'rb')
except UnidentifiedImageError:
logger.error(f"Exception: for {listing.ListingId}, (broken img)")
f = open(f"{STATIC_ROOT}main/img/other/nocard.webp", 'rb')
finally:
photo = Photo(image=File(f), listing=listing)
photo.save()

14 ответов

32 просмотра

Этот open разве PIL'овский? Билтин не выкинет такой эксепшн

Gregory- Автор вопроса
Jack Bolt
Этот open разве PIL'овский? Билтин не выкинет тако...

Исключение из библиотеки PIL. см в трейсбеке предпоследню юстроку

так… ты пытаешься сохранить картинку в файл открытый на чтение?

Gregory- Автор вопроса
Алиса Кассель-Королёва
так… ты пытаешься сохранить картинку в файл открыт...

так я сохранил в цикле первые 3 файлы img_0 img_1 img_2 img_3 они не чем не отличаются от img_4

Файл бы за собой закрывать не забывать. Ну и в целом логика немного вывернутая вышла.

Ну и да — затенять стандартный open — к путанице.

Gregory
Исключение из библиотеки PIL. см в трейсбеке пред...

Так лови исключение из библиотеки, зачем ты его ловишь на билтиновском open?

evle
Ну и да — затенять стандартный open — к путанице.

Pillow'ский open кидает ValueError, если mode != 'r'

evle
При чём тут это?

У него стандартный open там, иначе исключение вылезло раньше

Jack Bolt
У него стандартный open там, иначе исключение выле...

Хотя фиг знает, то там вообще просходит. Может и так.

Gregory
Как?

Ну, раз на photo.save ошибка, поставь эксепт там

Gregory- Автор вопроса
Jack Bolt
Ну, раз на photo.save ошибка, поставь эксепт там

я уже сделал это def save_images(listing): i = 0 for i in range(len(listing.Media)): try: f = open(f"{MEDIA_DIR}/download_images/img_{i}.jpeg", 'rb') photo = Photo(image=File(f), listing=listing) photo.save() except UnidentifiedImageError(): logger.error(f"Exception: for {listing.ListingId}, (broken img)") f = open(f"{STATIC_ROOT}main/img/other/nocard.webp", 'rb') photo = Photo(image=File(f), listing=listing) photo.save()

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта