从tiff和jpeg文件中读取exif元数据。
ExifRead的Python项目详细描述
易于使用Python模块从TIFF和JPEG文件中提取ExIF元数据。
原著作者吉恩·卡什和蒂埃里·布希。
安装
兼容性
exif.py在以下python版本上进行测试:
- 2.6
- 2.7
- 3.2
- 3.3
- 3.4
用法
命令行
一些示例:
$ EXIF.py image1.jpg $ EXIF.py image1.jpg image2.tiff $ find ~/Pictures -name "*.jpg" -name "*.tiff" | xargs EXIF.py
显示命令行选项:
$ EXIF.py
python脚本
import exifread # Open image file for reading (binary mode) f = open(path_name, 'rb') # Return Exif tags tags = exifread.process_file(f)
注意:若要在项目中将此库用作git子模块,应:
from <submodule_folder> import exifread<>返回标记将是一个映射EXIF标签的名称到它们的字典。 按路径名命名的文件中的值。 您可以根据需要处理标记。特别是,您可以使用:
for tag in tags.keys(): if tag not in ('JPEGThumbnail', 'TIFFThumbnail', 'Filename', 'EXIF MakerNote'): print "Key: %s, value %s" % (tag, tags[tag])
使用if语句可以避免打印出一些可能很长或很无聊的标记。
标签字典将包括所有常用的ExIF标记的键,并且还包括用于 一些相机用的笔记本,我们有很好的规格。
请注意,字典键是ifd名称后跟标记名称。例如:
'EXIF DateTimeOriginal', 'Image Orientation', 'MakerNote FocusMode'
标签说明
标签分为以下主要类别:
- {TT2} $:与主图像相关的信息(EXIF数据的IFD0)。
- {TT3}$:与缩略图相关的信息,如果存在(EXIF数据的IFD1)。
- {TT4} $:EXIF信息(子IFD)。
- GPS:GPS信息(子IFD)。
- Interoperability:互操作性信息(子ifd)。
- MakerNote:制造商特定信息。这些标签没有官方发布的参考资料。
处理选项
这些选项既可以在命令行模式下使用,也可以在脚本中使用。
更快的处理速度
不要处理makernote标记,不要提取缩略图(如果有的话)。
传递-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)