从tiff和jpeg文件读取Exif元数据。

ExifReader的Python项目详细描述


出口阅读器

Fork ofExif.py公司来自ianare并根据BSD许可证使用

易于使用Python模块从tiff和jpeg文件中提取Exif元数据。在

原著作者吉恩·卡什和蒂埃里·布希。在

安装

PyPi

建议的过程是从PyPi package安装exifreader 有关详细信息,请参阅pip documentation。在

兼容性

Exifreader在以下Python版本上经过测试和正式支持:

  • 3.5支持很可能在将来的版本中删除
  • 3.6条
  • 3.7款
  • 3.8条

使用

命令行

一些例子:

EXIF.py image1.jpg
EXIF.py image1.jpg image2.tiff
find ~/Pictures -name "*.jpg" -name "*.heic" -name "*.tiff"| xargs EXIF.py

显示命令行选项

^{pr2}$

Python脚本

importexifreader# Open image file for reading (binary mode)f=open(path_name,'rb')# Return Exif tagstags=exifread.process_file(f)

返回的标记将是一个将Exif标记的名称映射到其 文件中按路径名命名的值。 您可以根据需要处理标记。特别是,可以使用

fortagintags.keys():iftagnotin('JPEGThumbnail','TIFFThumbnail','Filename','EXIF MakerNote'):print"Key: %s, value %s"%(tag,tags[tag])

使用if语句来避免打印出一些可能很长或很无聊的标记。在

标记字典将包括所有常用Exif标记的键,还将包括 一些相机使用的Makernotes,对此我们有很好的规范。在

注意,字典键是IFD名称后跟标记名。例如:: “EXIF DateTimeOriginal”、“图像方向”、“MakerNote FocusMode”

标签说明

标签分为以下主要类别:

  • Image:与主映像相关的信息(Exif数据的IFD0)。在
  • Thumbnail:与缩略图相关的信息,如果存在(Exif数据的IFD1)。在
  • EXIF:Exif信息(sub-IFD)。在
  • GPS:GPS信息(sub-IFD)。在
  • Interoperability:互操作性信息(sub-IFD)。在
  • MakerNote:制造商特定信息。这些标签没有官方发布的参考文献。在

处理选项

这些选项既可以在命令行模式下使用,也可以在脚本中使用。在

更快的处理

不要处理makernotes标签,不要提取缩略图(如果有的话)。在

传递-q--quick命令行参数,或作为

tags=exifread.process_file(f,details=False)

停在给定的标签

在检索到指定的标记后停止处理文件。在

传递-t TAG--stop-tag TAG参数,或

tags=exifread.process_file(f,stop_tag='TAG')

其中TAG是有效的标记名,例如'DateTimeOriginal'。在

以上两个选项对于加快处理大量文件非常有用。

严格处理

返回无效标记的错误,而不是静默忽略。在

传递-s--strict参数,或作为:

tags=exifread.process_file(f,strict=True)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
JavaEclipseMars没有保存首选项   java梯度同步失败:原因:启动失败:   java如何从嵌套的JSON获取数据?   java如何判断可观察对象中的任何对象满足一个条件?   java将字符串转换为保持相同值的byte[]数组   java有没有办法绕过AuditingEntityListener为测试设置数据?   从/usr/share/java中解析linux JAR依赖关系   安卓 My java函数抛出nullpointerexception?   java Gradle使用正确版本的依赖项   JBoss和Java6中带注释的WebService中的web服务ClassCastException   java如何修复codename one中的简单逻辑错误?   java如何迭代矩阵的索引?   java如何在JPanel不可见时将其保存为图像?   java HashMap如何在Kotlin中实现MutableMap接口?   javascript如何在单击后加载特定片段?   EclipseJava为纳什均衡获取所有玩家/策略组合   JavaSpring:Web服务REST在JSON上产生双反斜杠   java为什么ServletContext#getRealPath(“/”)返回相对路径?   java当我的游戏应该重新启动时,我应该如何处理重置SurfaceView和线程?