从词典中的键中有效地选择最佳字符串

时间:2014-06-28 22:47:29

标签: 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 个答案:

答案 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)