Python实现图片按照拍摄日期进行自动归类

使用Python编写了一段程序,能自动根据照片的拍摄日期进行归类。该程序适用于大量照片的整理,避免手动操作的繁琐和错误。用户只需调整输入输出路径设置,程序即可将具有拍摄时间信息的照片移动到相应目录。

面对堆积如山的照片,手工归类太烦易出错,这里用python写了一段程序,可以实现具有拍摄时间照片的自动归类,符合条件的文件被移走了,不符合的没有变化,使用者只需根据自己的需要修改PhotoPath和NewPath的值即可。

import os
import sys
from shutil import Error
from shutil import copystat
from shutil import copy2
import exifread
import shutil
#图片所处的绝对路径,其中r表示去掉python的内部转义
PhotoPath = r'D:/photo'
NewPath = r'D:/pushiji/图片/生命时间轴P/'
#根据传参判断复制的目标地址是否存在如果不存在进行创建,并且执行复制操作
def copy_file(src_file,dst_dir):
	if not os.path.isdir(dst_dir):
		os.makedirs(dst_dir)
	copy2(src_file,dst_dir)

#根据传参判断复制的目标地址是否存在如果不存在进行创建,并且执行移动操作
def move_file(src_file,dst_dir):
	if not os.path.isdir(dst_dir):
		os.makedirs(dst_dir)
	shutil.move(src_file,dst_dir)

#遍历整个图片路径底下的所有文件并获取其拍摄时间,根据拍摄时间进行操作
def walk_file(file_path):
	for root,dirs,files in os.walk(file_path,topdown=False):
		for name in files:
			photo = os.path.join(root,name)
			try:
				with open(photo, 'rb') as img:
					dateStr = str(exifread.process_file(img)['Image DateTime'])
				year = dateStr[0:4]
				month = dateStr[5:7]
				new_path = NewPath+year+'年/'+year+'年'+month+'月/'
				move_file(photo,new_path)
				print("moved '{}' to '{}'".format(photo,new_path))
			except:
				print("Movement failed. {}".format(photo))
		for name in dirs:
			walk_file(name)
walk_file(PhotoPath)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值