一、前言
最近在整理手机照片的时候发现一个问题,一些基于第三方app拍摄的照片不会生成EXIF信息,因而在基于拍摄时间整理照片的时候,这些照片没法按照正确的时间轴进行排序,但是发现app会将拍摄时间的数据记录在文件名中,因此想实现通过python来编辑EXIF信息。
经过查找资料发现,pyexiv2这个包可以实现这个功能。
二、安装pyexiv2
-
可以通过以下几种方式安装:
- pyexiv2
- pip install pyexiv2
- 点击链接下载
三、查看图片的EXIF信息
首先导入包,并通过Image模块打开图片。
import pyexiv2
from pyexiv2 import Image
test=Image('C:\\test.jpg')
通过read方法查看图片的EXIF信息。
>> test.read_exif()
{'Exif.Image.DateTime': '2019:06:23 19:45:17', 'Exif.Image.Artist': 'TEST', 'Exif.Image.Rating': '4', ...}
四、编辑图片的EXIF信息
通过modify函数进行修改。
>> _dict={'Exif.Image.DateTime': '2019:08:27 00:00:00', 'Exif.Image.Artist': ''}
>> test.modify_exif(_dict)
>> exif = test.read_exif() # 再次读取文件
>> exif["Exif.Image.DateTime"]
'2019:08:27 00:00:00' # 时间已经被修改了
>> exif["Exif.Image.Artist"]
KeyError: 'Exif.Image.Artist' # 该信息已经被删除了
在图片属性中查看修改结果
五、总结
自此,已经实现通过python来修改照片的EXIF信息,接下来的需要完成的就是识别文件名并且将其转化为EXIF中的拍摄时间日期。