MENU

使用脚本一键修复图片EXIF日期信息

• 2026 年 08 月 24 日 • 阅读: 26 • 技术,开发,解难,文档

在整理旧照片的时候,从一刻相册下载下来的照片时间信息不对,发现原照片没有EXIF日期信息,导致即便下载原始文件,也不会保留文件原始创建日期

问题分析

一刻相册中的图片,右侧显示时间为 2020年05月25日,实际下载时间却丢失而变为 当前下载时间

网盘图片实际下载图片
image.pngimage.png

可以发现这类文件的文件名 IMG20200525123827.jpg是明显包含时间戳的:2020-05-25 12:38,那就可以用脚本解决。问题是微信导出的 mmexport 开头的图片并没有肉眼可见的日期而是 13 位 Unix 毫秒时间戳

脚本说明

逻辑说明

优先级:文件名中明确的日期/时间格式>文件名中 13 位 Unix 毫秒时间戳>文件名末尾的导出时间戳

情况处理逻辑
exif有时间,文件名无时间移入保留 文件夹,不做修改
文件名有时间修改EXIF 信息后移入 修改 文件夹
都无时间直接移入无时间 文件夹

文件名支持类型

首先明确目前已经支持的一些文件名

格式示例解析结果
Screenshot_YYYY-MM-DD-HH-MM-SSScreenshot_2019-04-04-16-07-36-53.jpg2019-04-04 16:07:36
IMG_YYYYMMDD_HHMMSSIMG_20180526_115312_1579248363749_80.jpg2018-05-26 11:53:12
任意位置连续 14 位YYYYMMDDHHMMSSIMG20180807145631.jpgfaceu_0_20190218141843.jpg2019-02-18 14:18:43
mmexport<13位>mmexport1533697685086.jpg2018-08-08 11:08:05
wx_camera_<13位>wx_camera_1532072568536.jpg2018-07-20 15:42:48
microMsg.<13位>microMsg.1530196473712.jpg2018-06-28 22:34:33
hdImg_...<13位>hdImg_...1552658489533.jpg2019-03-15 22:01:29
qq_pic_merged_<13位>qq_pic_merged_1556725293245.jpg2019-05-01 23:41:33
scan_filter_<13位>scan_filter_1552792846706.jpg2019-03-17 11:20:46
mmqrcode<13位>mmqrcode1553238340684.png2019-03-22 15:05:40
注意:文件名末尾_<13位>_<索引>(如 _1579248363749_80)是图片从 App 导出/备份的时间(约 2020-01-17),不是真实拍摄时间。只有当文件名中没有其它可识别时间时,才会用它兜底。

支持的扩展名

jpgjpegpngheicwebpgif

注意:.gif 按会直接删除,大部分为表情包,不需要可以修改源码。

使用说明

环境安装

  1. 确保Python版本>3.10
  2. 安装依赖

    python -m pip install pillow piexif

脚本使用

  1. 新建文件夹,所有图片至于文件夹内的顶层目录。
    2.复制python脚本文件进入后,使用python *.py运行。
  • 先跑 --dry-run 预览,确认分类符合预期后再正式执行。
  • 执行会把图片移动shutil.move)到 保留/修改/无时间 文件夹,原文件夹将不再保留这些图片。
  • process_images.py 保留在目录中,可随时重新运行以处理新放入的图片。

脚本下载

此处内容需要评论回复后方可阅读

返回文章列表 打赏
本页链接的二维码
打赏二维码