#python
#python
Вопрос:
Я пытаюсь прочитать данные EXIF из файла, в частности заголовок изображения. Иногда требуется проверить несколько полей, чтобы увидеть, был ли установлен заголовок. Прямо сейчас я делаю это с помощью нескольких операторов if, пробуя по одному, пока результат не станет none, и если это так, применяя заголовок по умолчанию.
#Set the title
m.title = exif.get('Xmp.dc.subject')
if m.title is None:
m.title = exif.get('Xmp.dc.title')
if m.title is None:
m.title = original_filename_noextension
Мой вопрос в том, есть ли более простой способ сделать это? Поиск может занять довольно много времени, если нужно проверить много ключей.
Ответ №1:
m.title = exif.get('Xmp.dc.subject') or exif.get('Xmp.dc.title') or original_filename_noextension
Должно сработать. Обратите внимание, что это приведет к «объединению» любых ложных значений, а не только None
.
Кроме того, вы можете довольно легко написать функцию:
def coalesce(*args):
for a in args:
if a is not None:
return a
Использование:
m.title = coalesce(exif.get('Xmp.dc.subject'), exif.get('Xmp.dc.title'), original_filename_noextension)