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 ответов

30 просмотров

Этот 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()

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

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

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Ребят в СИ можно реализовать ООП?
Николай
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
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
4
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Карта сайта