云计算、AI、云原生、大数据等一站式技术学习平台

网站首页 > 教程文章 正文

照片整理很繁琐?3个python脚本帮你快速整理照片

jxf315 2025-04-11 00:03:42 教程文章 30 ℃

现在我们每天都在产出大量照片,天长地久我们电脑上的照片越来越多越来越乱。而使用专业的图片库软件又过于臃肿,今天我们就介绍下面3个python脚本,能大大提高你的照片整理效率,减少你大量的重复性操作时间,还可以嵌入到自动化的工作流,实现更加复杂的操作。

批量图片处理(调整尺寸/数据压缩/添加水印)

我们在分享图片的时候很多时候会有图片的尺寸和大小要求,同时有时候在网上分享照片时候,我们还希望添加上水印,防止图片被他人盗用。

from PIL import Image
import os

input_folder = "./photos/"       #原图路径
output_folder = "./outputs/" #保存结果路径

for filename in os.listdir(input_folder):
    if filename.endswith((".jpg", ".png")):
        img = Image.open(f"{input_folder}/{filename}")
        # 缩放到宽度2000px,保持比例
        img.thumbnail((2000, 2000))
        # 转存为webp格式(节省50%存储空间)
        img.save(f"{output_folder}/{filename.split('.')[0]}.webp", "WEBP")


特定图片搜索(基于EXIF信息)

EXIF信息是是嵌入在照片中的隐形数据标签,自动记录拍摄时间、地理位置、设备型号及相机参数(如光圈/快门/ISO)等拍摄现场信息。我们可以通过它来进行照片检索。

iimport os,exifread

dir_path="./photos/" #替换成自己的图片库路径
for root, _, files in os.walk(dir_path):
	for file in files:
		path = os.path.join(root, file)
		with open(path, "rb") as f:
			tags = exifread.process_file(f)
			
		# 可以替换成其他搜索条件
		if "NIKON" in str(tags.get('Image Model', '')):
			print("尼康拍摄:",path)


重复照片识别(基于文件哈希码)

有时候我们会有大量的照片重复备份,造成我们的硬盘空间浪费,快速的去除重复的照片,帮助自己建立数字底片库,对于节省硬盘空间有巨大帮助。

import hashlib

def get_file_hash(filepath):
    """生成文件唯一指纹"""
    with open(filepath, "rb") as f:
        return hashlib.md5(f.read()).hexdigest()

photo_dict = {}
dir_path=".\photos\" #替换成自己的图片库路径
for root, _, files in os.walk(dir_path):
    for file in files:
        path = os.path.join(root, file)
        file_hash = get_file_hash(path)
        if file_hash in photo_dict:
            print(f"发现重复文件:{path} 与 {photo_dict[file_hash]}")
        else:
            photo_dict[file_hash] = path

总结

上述脚本不需要编程基础,只需要安装好python,在安装相应以赖库,最后修改下文件路径就可以直接运行,十分的轻量化。希望上面这些脚本能对你有所帮助,如需要源码文件,欢迎评论区留言,后续还有提供更多高级的实用技巧,欢迎关注

Tags:

最近发表
标签列表