怎么用python处理图片?
手机里的图片想整理一下,,怎么用python对图片进行处理,按年月日进行分类?代码怎么写? 使用Python处理图片可以使用PIL库(Python Imaging Library)。
首先,你需要安装PIL库。在终端或命令提示符中运行以下命令:
pip install pillow
下面是一个示例代码,用于将图片按照年月日进行分类并移动到对应的文件夹中:
from PIL import Image
import os
import shutil
# 获取图片的日期信息
def get_image_date(file_path):
with Image.open(file_path) as img:
info = img._getexif()
if 36867 in info:
date_time = info
return date_time.split().replace(':', '-')
else:
return "Unknown"
# 创建目录
def create_directory(directory):
try:
os.makedirs(directory)
except FileExistsError:
pass
# 移动图片到指定目录
def move_image(file_path, directory):
if not os.path.exists(directory):
create_directory(directory)
shutil.move(file_path, os.path.join(directory, os.path.basename(file_path)))
# 图片处理主函数
def process_images(source_directory, target_directory):
for filename in os.listdir(source_directory):
if filename.endswith(".jpg") or filename.endswith(".png"):
file_path = os.path.join(source_directory, filename)
date = get_image_date(file_path)
target_path = os.path.join(target_directory, date)
move_image(file_path, target_path)
# 设置源目录和目标目录
source_directory = "/path/to/source/directory"
target_directory = "/path/to/target/directory"
# 处理图片
process_images(source_directory, target_directory)
请替换 `source_directory` 和 `target_directory` 变量的值为你实际的目录路径。此代码将遍历 `source_directory` 中的所有图片文件,根据其拍摄日期将其移动到以日期命名的子目录中,存储在 `target_directory` 中。
这只是一个简单的示例,你可以根据自己的需求进行修改和扩展。希望对你有所帮助!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 要使用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("搞定!")
页:
[1]