①想要实现的样式:
②代码思路:
主要操作:遍历(读取图片的长和宽→生成新名字→以新名字重命名图片)
次要操作:出现重复名字时加上序号区分、生成错误报告以发现问题所在
选择模块:pillow
③代码展示:
import os
from PIL import Image
def rename_images(folder_path):
for filename in os.listdir(folder_path):
if filename.endswith('.png') or filename.endswith('.jpg') or filename.endswith('.jpeg'):
file_path = os.path.join(folder_path, filename)
try:
with Image.open(file_path) as image:
width, height = image.size
new_filename = str(width) + 'x' + str(height) + os.path.splitext(filename)[1]
new_file_path = os.path.join(folder_path, new_filename)
# 检查新文件名是否已存在,如果存在,则在文件名后添加序号
if os.path.exists(new_file_path):
i = 2
while os.path.exists(os.path.join(folder_path, os.path.splitext(new_filename)[0] + '_' + str(i) + os.path.splitext(filename)[1])):
i += 1
new_file_path = os.path.join(folder_path, os.path.splitext(new_filename)[0] + '_' + str(i) + os.path.splitext(filename)[1])
os.rename(file_path, new_file_path)
except Exception as e:
with open('报错.txt', 'a') as f:
f.write(f"{filename}打不开: {str(e)}\n")
# 指定要遍历的文件夹路径
folder_path = './'
# 调用函数进行重命名
rename_images(folder_path)
④注意点:
pillow不支持gif的识别
使用with open的方式打开,以免出现文件占用报错
报错使用生成txt的方式,以便后续打包成程序给其他人使用