图像批量重命名:
使用batch_rename_images函数实现对多个文件夹下面的图片进行重命名操作
先检查文件名的后缀,使用了.endswith()
方法来判断文件名是否以.jpg
、.png
或.JPG
结尾,判断是否为图片文件
然后构造新的文件路径new_filepath
,os.path.join
函数将文件名和文件夹路径拼接起来。
最后使用os.rename
函数将旧的文件路径重命名为新的文件路径
import os
def batch_rename_images(folder_path, prefix):# 获取指定文件夹下的所有文件files = os.listdir(folder_path)cnt=1# 遍历文件列表for filename in files:# 构造旧的文件路径old_filepath = os.path.join(folder_path, filename)print(old_filepath)# 检查是否为图片文件if filename.endswith(".jpg") or filename.endswith(".png") or filename.endswith(".JPG"):# 构造新的文件名new_filename = prefix + "-"+str(cnt)+".jpg"# 构造新的文件路径new_filepath = os.path.join(folder_path, new_filename)# 重命名文件os.rename(old_filepath, new_filepath)cnt+=1yaocai=["bohe","chenpi",'chuanbeimu',"dahuang","danggui"]
for y in yaocai:folder_path = "../yaocai_test/" + yprefix = y# 调用函数进行批量重命名操作batch_rename_images(folder_path, prefix)
图像批量旋转:
主要使用python的PIL库实现,在图像对象上调用rotate()
方法,它接受两个参数:angle
和expand
。
angle
参数指定旋转的角度,以度为单位。正值表示顺时针旋转,负值表示逆时针旋转。
expand
参数是可选的,当expand
为True
时,旋转后的图像会被调整大小,以适应整个旋转后的图像而不裁剪任何部分。如果expand
为False
或未指定,则旋转后的图像将被裁剪为原始图像的大小。
下面实现读取多个文件夹,并对每个文件夹的图片旋转并保存在原文件夹中
from PIL import Image
import osyaocai_list=["bohe","chenpi",'chuanbeimu',"dahuang","danggui"]
for yaocai in yaocai_list:folder_path = "../yaocai_test/" + yaocai #文件路径output_folder_path = "../yaocai_test/" + yaocai # 保存文件的路径for filename in os.listdir(folder_path):file_path = os.path.join(folder_path, filename)# 图片统一为JPG格式,所以只需要看是不是jbg就行了if filename.endswith(".jpg"):im = Image.open(file_path)# 将图像对象转换为RGB模式im = im.convert("RGB")angle=90# 对图像对象进行90度的旋转im = im.rotate(angle, expand=True)new_filename = f"{angle}_"+filename # 新的文件名im.save(os.path.join(output_folder_path, new_filename))