我试图从文件中读取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
我的问题是,有更简单的方法吗?如果需要检查很多密钥,搜索可能会很长。
答案 0 :(得分:3)
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)