。

解决之道 那边有三种情形 1.相片存EXIF重要信息 能在那个中文网站查阅与否存exif https://exif.tuchong.com/

预备组织工作 具体来说官方中文网站浏览vscode,加装 https://code.visualstudio.com/ 加装顺利完成后按我的操作方式展开应用程序浏览



加装顺利完成后再次关上vscode就变为英文介面了 随即关上CMD依次输出 pip install Pillow pip3 install datetime 在Python中,datetime 组件提供更多了处置年份和天数的机能。
Pillow程序库加载相片的exif重要信息,并采用os程序库更动文档的修正年份。


加装顺利完成后会提示信息获得成功

import os import datetime from PIL import Image from PIL.ExifTags import TAGS dir_path = r”C:UsersCCCCDesktopphoto”
# 以获取文档条目 file_list = os.listdir(dir_path) for file_name in file_list: file_path = os.path.join(dir_path, file_name)
try: # 尝试关上图片文档 with Image.open(file_path) as img: # 以获取图片的EXIF重要信息
exif_data = img._getexif() # 如果图片包含EXIF重要信息 if exif_data: # 以获取拍摄年份和天数重要信息
datetime_str = exif_data.get(36867) if datetime_str: # 将字符串解析为datetime对象
dt = datetime.datetime.strptime(datetime_str, “%Y:%m:%d %H:%M:%S”) # 将修正年份设置为拍摄年份
os.utime(file_path, (os.path.getatime(file_path), dt.timestamp())) print(f”{file_name}: 拍摄年份设置为 {datetime_str}”)
else: print(f”{file_name}: 没有找到拍摄年份重要信息,跳过”) else: print(f”{file_name}: 没有EXIF重要信息,跳过”)
except Exception as e:

大功告成

那如果相片没有EXIF重要信息怎么办 我自己是这么解决的,通过提取文档名中的年份重要信息把它修正到修正年份,主要问题是如何提取文档名中的年份重要信息,这里我运用了CHATGPT来帮我编写代码 具体来说调教一下CHATGPT。

能将你文档中有年份的文档名格式挑出典型让他学习理解。 然后告诉CHATGPT 请在”X:Moments”识别文档名的年份并修正文档“修正年份”

这样我们就能得到一个代码,但每个人文档的命名方式不一样所以代码也有可能不一样,我这里贴出我的代码,大家能尝试 # 指定目录 directory = rX:Moments # 匹配年份的正则表达式。
pattern = rd{4}-d{2}-d{2} # 遍历目录下的所有文档 for root, dirs, files in os.walk(directory): for file in files:
# 提取文档名中的年份重要信息 match = re.search(pattern, file) if match: date_str = match.group()
# 将年份重要信息转换为年份对象 date = datetime.datetime.strptime(date_str, %Y-%m-%d) # 以获取文档路径
file_path = os.path.join(root, file) # 修正文档的修正年份为年份对象对应的天数戳 os.utime(file_path, (os.path.getatime(file_path), date.timestamp()))
这样也能更动大部分文档,也算另辟蹊了 大部分文档我都通过这两个办法恢复了,有一些文档没有exif重要信息和文档年份重要信息,那就没有办法了 这篇文章的解决之道完全靠CHATGPT提供更多思路,包括报错等其他代码问题都是通过CHATGPT解决。