|
发表于 2024-2-6 00:56:02
|
显示全部楼层
要使用Python对图像按照日期(年月日)进行分类,你可以考虑以下几个步骤:
- 读取图像文件的元数据(EXIF),来获取拍摄日期
- 根据拍摄日期创建对应的文件夹结构(例如:年/月/日)
- 将图像移动到对应的文件夹中
你可以参考下面这段代码进行修改 DIY:
- import os
- import shutil
- from PIL import Image
- from datetime import datetime
- # 图像所在目录
- image_dir = '/path/to/your/images'
- # 分类后图像存放的目录
- sorted_dir = '/path/to/sorted/images'
- # 确保分类后的目录存在
- if not os.path.exists(sorted_dir):
- os.makedirs(sorted_dir)
- # 遍历图像目录中的所有文件
- for filename in os.listdir(image_dir):
- if filename.lower().endswith(('.png', '.jpg', '.jpeg', '.tiff', '.bmp', '.gif')):
- # 构建完整的文件路径
- file_path = os.path.join(image_dir, filename)
- try:
- # 打开图像文件
- with Image.open(file_path) as img:
- # 从图像文件中获取EXIF信息
- exif_data = img._getexif()
- # 找到日期时间的EXIF标签
- date_time_original = exif_data.get(36867)
- if date_time_original:
- # 解析日期时间字符串
- date_taken = datetime.strptime(date_time_original, '%Y:%m:%d %H:%M:%S')
- # 构建日期目录结构(年/月/日)
- date_folder = os.path.join(sorted_dir, str(date_taken.year), str(date_taken.month).zfill(2), str(date_taken.day).zfill(2))
- # 如果日期目录不存在,则创建
- if not os.path.exists(date_folder):
- os.makedirs(date_folder)
- # 移动文件到相应的日期目录
- shutil.move(file_path, os.path.join(date_folder, filename))
- else:
- print(f"No EXIF date information found for {filename}")
- except (IOError, KeyError, IndexError):
- print(f"处理 {filename} 时出错!")
- print("搞定!")
复制代码 |
|