使用Python和pyexiv2批量修改EXIF信息

虽然说windows的文件管理器也可以批量改日期,但是对拍摄时间束手无策…强迫症的我不容许这样的事情发生,于是在sutar的怂恿下开始了批量改EXIF的探索。

首先是工具的选择,采用了狂霸酷炫的Python和栈溢出推荐的pyexiv2

pyexiv还提供了windows的安装包…很狂霸酷炫…

之后就照着pyexiv官方教程开始探索,一开始发现修改Exif.Image.DateTime并不能影响windows里的拍摄日期,后来发现是影响拍摄日期的项目是Exif.Photo.DateTimeOriginal,修改成功后一本满足。

之后就是用python遍历修改的文件夹,然后就可以批量修改啦,因为我用了吧.py文件丢在工作目录下自动全部改的淳朴.bat思路,于是还得注意筛选。其实放在上一级目录,打开下一集目录就能不用筛选了。

挺简单的程序,也没有什么算法,就直接贴代码啦:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import pyexiv2
from datetime import timedelta
from os import listdir
import os

def add(path,delta):
meta = pyexiv2.ImageMetadata(path)
meta.read()
meta['Exif.Photo.DateTimeOriginal'].value += delta
meta.write()

delta = timedelta(hours=6)

pwd = os.getcwd()
for item in listdir(pwd):
if item[-3:]=='JPG':
path = pwd + '\\' + item
print path
add(path,delta)