代码之家  ›  专栏  ›  技术社区  ›  D.A.

使用枕头访问EXIF数据,而无需访问受保护的成员

  •  2
  • D.A.  · 技术社区  · 6 年前

    我找到的可供使用的示例 pillow 要访问映像的EXIF元数据,请使用受保护的成员 _getexif() PIL的。形象Pylint将对此进行投诉,并发出以下警告:

    [W0212(受保护的访问),functionname]访问受保护的成员 _客户端类的getexif

    有没有一种方法可以在不经过受保护成员的情况下获取图像的EXIF数据?

    1 回复  |  直到 6 年前
        1
  •  3
  •   Finlay McWalter    6 年前

    _getexif() 之所以强调,是因为他们不想让它一直像现在这样工作——代码说“这种方法是高度实验性的,很可能在未来的版本中被更好的方法所取代。”虽然据我所知,在PIL中 年龄 .

    因此,您的选择是:

    • 抑制lint警告
    • 使用获取原始(未解析)exif数据 i.info.get('exif') 然后自己解析,可能是用枕头上的代码
    • 使用受支持的exif库,如 ExifRead

    编辑 :真的“不想一直按现在的方式工作”有点低估了它- _getexif() 是供库自身(非常有限)内部使用的,他们认识到 真实的 野外发现的exifs,为所有人(即使是奇怪的人)提供一个可靠的结果,是一项比他们愿意签署的更重要的任务。