我找到的使用 pillow 的示例要访问图像的 EXIF 元数据,请使用 PIL.Image 的 protected 成员 _getexif()
。 Pylint 会对此进行提示,并发出以下警告:
[W0212(protected-access), functionname] Access to a protected member _getexif of a client class
有没有办法在不通过 protected 成员的情况下获取图像的 EXIF 数据?
最佳答案
_getexif()
带有下划线,因为他们不想 promise 它始终按照现在的方式工作 - 代码表示“此方法是高度实验性的,并且可能会被替换为 future 版本中会有更好的东西。”不过,据我所知,据说在 PIL 中已经有很长时间了。
所以你的选择是:
- 抑制 lint 警告
- 使用
i.info.get('exif')
获取原始(未解析的)exif 数据并自行解析,可能使用从 Pillow 中提取的代码 - 使用受支持的 exif 库,例如 ExifRead
编辑:真的“不想 promise 它总是像现在这样工作”有点低估了它 - _getexif()
适用于图书馆自己(非常有限)的内部使用,并且他们认识到解析在野外发现的真实 exif,并为所有人(甚至是奇怪的)提供可靠的结果是比他们愿意的更重要的任务注册。
关于python - 使用 Pillow 访问 EXIF 数据,而无需访问 protected 成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48426771/